@effect-app/infra 1.45.0 → 1.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/_cjs/RequestContext.cjs +16 -38
- package/_cjs/RequestContext.cjs.map +1 -1
- package/_cjs/api/internal/RequestContextMiddleware.cjs +9 -24
- package/_cjs/api/internal/RequestContextMiddleware.cjs.map +1 -1
- package/_cjs/api/internal/events.cjs +1 -1
- package/_cjs/api/internal/events.cjs.map +1 -1
- package/_cjs/api/setupRequest.cjs +28 -39
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +3 -5
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/logger/jsonLogger.cjs +2 -2
- package/_cjs/logger/jsonLogger.cjs.map +1 -1
- package/_cjs/logger/logFmtLogger.cjs +1 -2
- package/_cjs/logger/logFmtLogger.cjs.map +1 -1
- package/_cjs/logger/shared.cjs +15 -12
- package/_cjs/logger/shared.cjs.map +1 -1
- package/_cjs/services/QueueMaker/SQLQueue.cjs +3 -17
- package/_cjs/services/QueueMaker/SQLQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +3 -16
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +3 -16
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/service.cjs +1 -9
- package/_cjs/services/QueueMaker/service.cjs.map +1 -1
- package/_cjs/services/RepositoryBase.cjs +3 -2
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +4 -7
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/dist/RequestContext.d.ts +20 -63
- package/dist/RequestContext.d.ts.map +1 -1
- package/dist/RequestContext.js +16 -38
- package/dist/api/internal/RequestContextMiddleware.d.ts +1 -2
- package/dist/api/internal/RequestContextMiddleware.d.ts.map +1 -1
- package/dist/api/internal/RequestContextMiddleware.js +11 -30
- package/dist/api/internal/events.d.ts +1 -1
- package/dist/api/internal/events.d.ts.map +1 -1
- package/dist/api/internal/events.js +3 -3
- package/dist/api/setupRequest.d.ts +3 -7
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +28 -47
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +5 -7
- package/dist/logger/jsonLogger.d.ts.map +1 -1
- package/dist/logger/jsonLogger.js +4 -4
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +3 -4
- package/dist/logger/shared.d.ts +2 -2
- package/dist/logger/shared.d.ts.map +1 -1
- package/dist/logger/shared.js +13 -10
- package/dist/services/QueueMaker/SQLQueue.d.ts +3 -4
- package/dist/services/QueueMaker/SQLQueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/SQLQueue.js +5 -18
- package/dist/services/QueueMaker/memQueue.d.ts +2 -3
- package/dist/services/QueueMaker/memQueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/memQueue.js +6 -16
- package/dist/services/QueueMaker/sbqueue.d.ts +2 -3
- package/dist/services/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/sbqueue.js +6 -16
- package/dist/services/QueueMaker/service.d.ts +2 -13
- package/dist/services/QueueMaker/service.d.ts.map +1 -1
- package/dist/services/QueueMaker/service.js +2 -10
- package/dist/services/Repository/ext.d.ts +11 -11
- package/dist/services/RepositoryBase.d.ts +6 -6
- package/dist/services/RepositoryBase.d.ts.map +1 -1
- package/dist/services/RepositoryBase.js +3 -3
- package/dist/services/RequestFiberSet.d.ts +1 -1
- package/dist/services/Store/Memory.d.ts +2 -6
- package/dist/services/Store/Memory.d.ts.map +1 -1
- package/dist/services/Store/Memory.js +4 -6
- package/package.json +4 -14
- package/src/RequestContext.ts +15 -46
- package/src/api/internal/RequestContextMiddleware.ts +10 -31
- package/src/api/internal/events.ts +2 -2
- package/src/api/setupRequest.ts +38 -72
- package/src/errorReporter.ts +4 -6
- package/src/logger/jsonLogger.ts +3 -3
- package/src/logger/logFmtLogger.ts +2 -3
- package/src/logger/shared.ts +15 -9
- package/src/services/QueueMaker/SQLQueue.ts +5 -19
- package/src/services/QueueMaker/memQueue.ts +5 -15
- package/src/services/QueueMaker/sbqueue.ts +5 -15
- package/src/services/QueueMaker/service.ts +2 -11
- package/src/services/RepositoryBase.ts +1 -2
- package/src/services/Store/Memory.ts +3 -7
- package/_cjs/services/RequestContextContainer.cjs +0 -36
- package/_cjs/services/RequestContextContainer.cjs.map +0 -1
- package/dist/services/RequestContextContainer.d.ts +0 -42
- package/dist/services/RequestContextContainer.d.ts.map +0 -1
- package/dist/services/RequestContextContainer.js +0 -31
- package/src/services/RequestContextContainer.ts +0 -53
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import { Model } from "@effect-app/infra-adapters/SQL";
|
|
2
|
-
import { setupRequestContext } from "@effect-app/infra/api/setupRequest";
|
|
3
|
-
import { RequestContext } from "@effect-app/infra/RequestContext";
|
|
2
|
+
import { getRequestContext, setupRequestContext } from "@effect-app/infra/api/setupRequest";
|
|
4
3
|
import { reportNonInterruptedFailure } from "@effect-app/infra/services/QueueMaker/errors";
|
|
5
4
|
import { QueueMeta } from "@effect-app/infra/services/QueueMaker/service";
|
|
6
|
-
import { RequestContextContainer } from "@effect-app/infra/services/RequestContextContainer";
|
|
7
5
|
import { SqlClient } from "@effect/sql";
|
|
8
6
|
import { randomUUID } from "crypto";
|
|
9
7
|
import { subMinutes } from "date-fns";
|
|
10
8
|
import { Effect, Fiber, Option, S, Tracer } from "effect-app";
|
|
11
|
-
import { RequestId } from "effect-app/ids";
|
|
12
|
-
import { NonEmptyString255 } from "effect-app/schema";
|
|
13
9
|
import { pretty } from "effect-app/utils";
|
|
14
10
|
import { InfraLogger } from "../../logger.js";
|
|
15
11
|
export const QueueId = S.Number.pipe(S.brand("QueueId"));
|
|
@@ -87,17 +83,12 @@ export function makeSQLQueue(queueName, queueDrainName, schema, drainSchema) {
|
|
|
87
83
|
}),
|
|
88
84
|
finish: ({ createdAt, updatedAt, ...q }) => drainRepo.updateVoid(Drain.update.make({ ...q, finishedAt: Option.some(new Date()) })) // auto in lib , etag: randomUUID()
|
|
89
85
|
};
|
|
90
|
-
const rcc = yield* RequestContextContainer;
|
|
91
86
|
return {
|
|
92
87
|
publish: (...messages) => Effect
|
|
93
88
|
.gen(function* () {
|
|
94
|
-
const requestContext = yield*
|
|
95
|
-
const span = yield* Effect.serviceOption(Tracer.ParentSpan);
|
|
89
|
+
const requestContext = yield* getRequestContext;
|
|
96
90
|
return yield* Effect
|
|
97
|
-
.forEach(messages, (m) => q.offer(m, {
|
|
98
|
-
requestContext: new RequestContext(requestContext), // workaround Schema expecting exact class
|
|
99
|
-
span: Option.getOrUndefined(span)
|
|
100
|
-
}), {
|
|
91
|
+
.forEach(messages, (m) => q.offer(m, requestContext), {
|
|
101
92
|
discard: true
|
|
102
93
|
});
|
|
103
94
|
})
|
|
@@ -114,11 +105,7 @@ export function makeSQLQueue(queueName, queueDrainName, schema, drainSchema) {
|
|
|
114
105
|
.flatMap(({ body, meta }) => {
|
|
115
106
|
let effect = InfraLogger
|
|
116
107
|
.logInfo(`[${queueDrainName}] Processing incoming message`)
|
|
117
|
-
.pipe(Effect.annotateLogs({ body: pretty(body), meta: pretty(meta) }), Effect.zipRight(handleEvent(body)), silenceAndReportError, (_) => setupRequestContext(_,
|
|
118
|
-
id: RequestId(body.id),
|
|
119
|
-
locale: "en",
|
|
120
|
-
name: NonEmptyString255(`${queueDrainName}.${body._tag}`)
|
|
121
|
-
})), Effect
|
|
108
|
+
.pipe(Effect.annotateLogs({ body: pretty(body), meta: pretty(meta) }), Effect.zipRight(handleEvent(body)), silenceAndReportError, (_) => setupRequestContext(_, meta), Effect
|
|
122
109
|
.withSpan(`queue.drain: ${queueDrainName}.${body._tag}`, {
|
|
123
110
|
captureStackTrace: false,
|
|
124
111
|
kind: "consumer",
|
|
@@ -146,4 +133,4 @@ export function makeSQLQueue(queueName, queueDrainName, schema, drainSchema) {
|
|
|
146
133
|
};
|
|
147
134
|
});
|
|
148
135
|
}
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU1FMUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvUXVldWVNYWtlci9TUUxRdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFDM0YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUE7QUFFMUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRTdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFN0MsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtBQUd4RCxvRkFBb0Y7QUFDcEYsTUFBTSxVQUFVLFlBQVksQ0FNMUIsU0FBNEIsRUFDNUIsY0FBaUMsRUFDakMsTUFBMkIsRUFDM0IsV0FBMEM7SUFFMUMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN6QixNQUFNLElBQUksR0FBRztZQUNYLEVBQUUsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztZ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
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { MemQueue } from "@effect-app/infra-adapters/memQueue";
|
|
2
2
|
import { Tracer } from "effect";
|
|
3
3
|
import { Effect, S } from "effect-app";
|
|
4
|
-
import { RequestContextContainer } from "../RequestContextContainer.js";
|
|
5
4
|
/**
|
|
6
5
|
* @tsplus static QueueMaker.Ops makeMem
|
|
7
6
|
*/
|
|
@@ -13,6 +12,6 @@ export declare function makeMemQueue<Evt extends {
|
|
|
13
12
|
_tag: string;
|
|
14
13
|
}, EvtE, DrainEvtE>(queueName: string, queueDrainName: string, schema: S.Schema<Evt, EvtE>, drainSchema: S.Schema<DrainEvt, DrainEvtE>): Effect.Effect<{
|
|
15
14
|
publish: (messages_0: Evt, ...messages: Evt[]) => Effect.Effect<void, never, never>;
|
|
16
|
-
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never,
|
|
17
|
-
}, never,
|
|
15
|
+
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, import("../Store/ContextMapContainer.js").ContextMapContainer | Exclude<Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, never>, Tracer.ParentSpan>, Tracer.ParentSpan>>;
|
|
16
|
+
}, never, MemQueue>;
|
|
18
17
|
//# sourceMappingURL=memQueue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memQueue.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/memQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"memQueue.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/memQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAe,CAAC,EAAE,MAAM,YAAY,CAAA;AAOnD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,GAAG,SAAS;IAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC5C,QAAQ,SAAS;IAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACjD,IAAI,EACJ,SAAS,EAET,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;;YAkC9B,MAAM,EAAE,MAAM,eACP,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,cAC/C,MAAM;oBA8DzB"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { MemQueue } from "@effect-app/infra-adapters/memQueue";
|
|
2
|
-
import { RequestContext } from "@effect-app/infra/RequestContext";
|
|
3
|
-
import { NonEmptyString255 } from "@effect-app/schema";
|
|
4
2
|
import { Tracer } from "effect";
|
|
5
|
-
import { Effect, Fiber, flow,
|
|
6
|
-
import { RequestId } from "effect-app/ids";
|
|
3
|
+
import { Effect, Fiber, flow, S } from "effect-app";
|
|
7
4
|
import { pretty } from "effect-app/utils";
|
|
8
|
-
import { setupRequestContext } from "../../api/setupRequest.js";
|
|
5
|
+
import { getRequestContext, setupRequestContext } from "../../api/setupRequest.js";
|
|
9
6
|
import { InfraLogger } from "../../logger.js";
|
|
10
|
-
import { RequestContextContainer } from "../RequestContextContainer.js";
|
|
11
7
|
import { reportNonInterruptedFailure } from "./errors.js";
|
|
12
8
|
import { QueueMeta } from "./service.js";
|
|
13
9
|
/**
|
|
@@ -18,19 +14,17 @@ export function makeMemQueue(queueName, queueDrainName, schema, drainSchema) {
|
|
|
18
14
|
const mem = yield* MemQueue;
|
|
19
15
|
const q = yield* mem.getOrCreateQueue(queueName);
|
|
20
16
|
const qDrain = yield* mem.getOrCreateQueue(queueDrainName);
|
|
21
|
-
const rcc = yield* RequestContextContainer;
|
|
22
17
|
const wireSchema = S.Struct({ body: schema, meta: QueueMeta });
|
|
23
18
|
const drainW = S.Struct({ body: drainSchema, meta: QueueMeta });
|
|
24
19
|
const parseDrain = flow(S.decodeUnknown(drainW), Effect.orDie);
|
|
25
20
|
return {
|
|
26
21
|
publish: (...messages) => Effect
|
|
27
22
|
.gen(function* () {
|
|
28
|
-
const requestContext = yield*
|
|
29
|
-
const span = yield* Effect.serviceOption(Tracer.ParentSpan);
|
|
23
|
+
const requestContext = yield* getRequestContext;
|
|
30
24
|
return yield* Effect
|
|
31
25
|
.forEach(messages, (m) =>
|
|
32
26
|
// we JSON encode, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
|
|
33
|
-
S.encode(wireSchema)({ body: m, meta:
|
|
27
|
+
S.encode(wireSchema)({ body: m, meta: requestContext }).pipe(Effect.orDie, Effect
|
|
34
28
|
.andThen(JSON.stringify),
|
|
35
29
|
// .tap((msg) => info("Publishing Mem Message: " + utils.inspect(msg)))
|
|
36
30
|
Effect.flatMap((_) => q.offer(_))), { discard: true });
|
|
@@ -50,11 +44,7 @@ export function makeMemQueue(queueName, queueDrainName, schema, drainSchema) {
|
|
|
50
44
|
.flatMap(({ body, meta }) => {
|
|
51
45
|
let effect = InfraLogger
|
|
52
46
|
.logInfo(`[${queueDrainName}] Processing incoming message`)
|
|
53
|
-
.pipe(Effect.annotateLogs({ body: pretty(body), meta: pretty(meta) }), Effect.zipRight(handleEvent(body)), silenceAndReportError, (_) => setupRequestContext(_,
|
|
54
|
-
id: RequestId(body.id),
|
|
55
|
-
locale: "en",
|
|
56
|
-
name: NonEmptyString255(`${queueDrainName}.${body._tag}`)
|
|
57
|
-
})), Effect
|
|
47
|
+
.pipe(Effect.annotateLogs({ body: pretty(body), meta: pretty(meta) }), Effect.zipRight(handleEvent(body)), silenceAndReportError, (_) => setupRequestContext(_, meta), Effect
|
|
58
48
|
.withSpan(`queue.drain: ${queueDrainName}.${body._tag}`, {
|
|
59
49
|
captureStackTrace: false,
|
|
60
50
|
kind: "consumer",
|
|
@@ -85,4 +75,4 @@ export function makeMemQueue(queueName, queueDrainName, schema, drainSchema) {
|
|
|
85
75
|
};
|
|
86
76
|
});
|
|
87
77
|
}
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvUXVldWVNYWtlci9tZW1RdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDN0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pELE9BQU8sRUFBa0IsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXhEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FNMUIsU0FBaUIsRUFDakIsY0FBc0IsRUFDdEIsTUFBMkIsRUFDM0IsV0FBMEM7SUFFMUMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN6QixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUE7UUFDM0IsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ2hELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUUxRCxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUM5RCxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMvRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFOUQsT0FBTztZQUNMLE9BQU8sRUFBRSxDQUFDLEdBQUcsUUFBUSxFQUFFLEVBQUUsQ0FDdkIsTUFBTTtpQkFDSCxHQUFHLENBQUMsUUFBUSxDQUFDO2dCQUNaLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDLGlCQUFpQixDQUFBO2dCQUMvQyxPQUFPLEtBQUssQ0FBQyxDQUFDLE1BQU07cUJBQ2pCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDdkIsdUhBQXVIO2dCQUN2SCxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQzFELE1BQU0sQ0FBQyxLQUFLLEVBQ1osTUFBTTtxQkFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDMUIsdUVBQXVFO2dCQUN2RSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2xDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtZQUMzQixDQUFDLENBQUM7aUJBQ0QsSUFBSSxDQUNILE1BQU0sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxFQUFFO2dCQUM3QyxpQkFBaUIsRUFBRSxLQUFLO2dCQUN4QixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsVUFBVSxFQUFFLEVBQUUsY0FBYyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTthQUM1RCxDQUFDLENBQ0g7WUFDTCxLQUFLLEVBQUUsQ0FDTCxXQUEyRCxFQUMzRCxTQUFrQixFQUNsQixFQUFFLENBQ0YsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7Z0JBQ2xCLE1BQU0scUJBQXFCLEdBQUcsMkJBQTJCLENBQUMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEdBQUcsY0FBYyxFQUFFLENBQUMsQ0FBQTtnQkFDdkcsTUFBTSxjQUFjLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtnQkFDckMsc0hBQXNIO2dCQUN0SCxNQUFNO3FCQUNILElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3FCQUMzQixJQUFJLENBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFDMUIsTUFBTSxDQUFDLEtBQUssRUFDWixNQUFNO3FCQUNILE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7b0JBQzFCLElBQUksTUFBTSxHQUFHLFdBQVc7eUJBQ3JCLE9BQU8sQ0FBQyxJQUFJLGNBQWMsK0JBQStCLENBQUM7eUJBQzFELElBQUksQ0FDSCxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFDL0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDbEMscUJBQXFCLEVBQ3JCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDSixtQkFBbUIsQ0FDakIsQ0FBQyxFQUNELElBQUksQ0FDTCxFQUNILE1BQU07eUJBQ0gsUUFBUSxDQUFDLGdCQUFnQixjQUFjLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFO3dCQUN2RCxpQkFBaUIsRUFBRSxLQUFLO3dCQUN4QixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsVUFBVSxFQUFFOzRCQUNWLFlBQVksRUFBRSxjQUFjOzRCQUM1QixpQkFBaUIsRUFBRSxTQUFTOzRCQUM1QixhQUFhLEVBQUUsSUFBSTt5QkFDcEI7cUJBQ0YsQ0FBQyxDQUNMLENBQUE7b0JBQ0gsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ2QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7b0JBQ3hFLENBQUM7b0JBQ0QsT0FBTyxNQUFNLENBQUE7Z0JBQ2YsQ0FBQyxDQUFDLENBQ0wsQ0FBQTtnQkFDTCxPQUFPLEtBQUssQ0FBQyxDQUFDLE1BQU07cUJBQ2pCLElBQUk7cUJBQ0osSUFBSSxDQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNuQixjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUN4RjtnQkFDRCx5RkFBeUY7Z0JBQ3pGLHVJQUF1STtnQkFDdkkscUJBQXFCLEVBQ3JCLE1BQU0sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLGNBQWMsRUFBRSxFQUFFO29CQUNoRCxVQUFVLEVBQUU7d0JBQ1YsWUFBWSxFQUFFLEtBQUs7d0JBQ25CLFlBQVksRUFBRSxjQUFjO3dCQUM1QixpQkFBaUIsRUFBRSxTQUFTO3FCQUM3QjtpQkFDRixDQUFDLEVBQ0YsTUFBTSxDQUFDLE9BQU8sQ0FDZixDQUFBO1lBQ0wsQ0FBQyxDQUFDO1NBQzhCLENBQUE7SUFDdEMsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDIn0=
|
|
@@ -2,7 +2,6 @@ import { ServiceBusReceiverFactory } from "@effect-app/infra-adapters/ServiceBus
|
|
|
2
2
|
import { Tracer } from "effect";
|
|
3
3
|
import { Effect, Layer, S } from "effect-app";
|
|
4
4
|
import type { StringId } from "effect-app/schema";
|
|
5
|
-
import { RequestContextContainer } from "../RequestContextContainer.js";
|
|
6
5
|
/**
|
|
7
6
|
* @tsplus static QueueMaker.Ops makeServiceBus
|
|
8
7
|
*/
|
|
@@ -13,9 +12,9 @@ export declare function makeServiceBusQueue<Evt extends {
|
|
|
13
12
|
id: StringId;
|
|
14
13
|
_tag: string;
|
|
15
14
|
}, EvtE, DrainEvtE>(queueName: string, queueDrainName: string, schema: S.Schema<Evt, EvtE>, drainSchema: S.Schema<DrainEvt, DrainEvtE>): Effect.Effect<{
|
|
16
|
-
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, import("effect/Scope").Scope |
|
|
15
|
+
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, import("effect/Scope").Scope | import("../Store/ContextMapContainer.js").ContextMapContainer | Exclude<Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, never>, Tracer.ParentSpan>, ServiceBusReceiverFactory>>;
|
|
17
16
|
publish: (messages_0: Evt, ...messages: Evt[]) => Effect.Effect<void, never, never>;
|
|
18
|
-
}, never,
|
|
17
|
+
}, never, ServiceBusReceiverFactory | import("@azure/service-bus").ServiceBusSender>;
|
|
19
18
|
/**
|
|
20
19
|
* @tsplus static QueueMaker.Ops makeServiceBusLayers
|
|
21
20
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sbqueue.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/sbqueue.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,yBAAyB,EAE1B,MAAM,uCAAuC,CAAA;
|
|
1
|
+
{"version":3,"file":"sbqueue.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/sbqueue.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,yBAAyB,EAE1B,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAS,MAAM,EAAQ,KAAK,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAOjD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,SAAS;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC1C,QAAQ,SAAS;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC/C,IAAI,EACJ,SAAS,EAET,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;YAoB9B,MAAM,EAAE,MAAM,eACP,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,cAC/C,MAAM;;qFAqGzB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,wGAI1F"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { LiveSender, LiveServiceBusClient, Sender, ServiceBusReceiverFactory, subscribe } from "@effect-app/infra-adapters/ServiceBus";
|
|
2
|
-
import { RequestContext } from "@effect-app/infra/RequestContext";
|
|
3
2
|
import { Tracer } from "effect";
|
|
4
|
-
import { Cause, Effect, flow, Layer,
|
|
5
|
-
import { RequestId } from "effect-app/ids";
|
|
6
|
-
import { NonEmptyString255 } from "effect-app/schema";
|
|
3
|
+
import { Cause, Effect, flow, Layer, S } from "effect-app";
|
|
7
4
|
import { pretty } from "effect-app/utils";
|
|
8
|
-
import { setupRequestContext } from "../../api/setupRequest.js";
|
|
5
|
+
import { getRequestContext, setupRequestContext } from "../../api/setupRequest.js";
|
|
9
6
|
import { InfraLogger } from "../../logger.js";
|
|
10
|
-
import { RequestContextContainer } from "../RequestContextContainer.js";
|
|
11
7
|
import { reportNonInterruptedFailure, reportNonInterruptedFailureCause, reportQueueError } from "./errors.js";
|
|
12
8
|
import { QueueMeta } from "./service.js";
|
|
13
9
|
/**
|
|
@@ -25,7 +21,6 @@ export function makeServiceBusQueue(queueName, queueDrainName, schema, drainSche
|
|
|
25
21
|
const receiver = yield* ServiceBusReceiverFactory;
|
|
26
22
|
const silenceAndReportError = reportNonInterruptedFailure({ name: "ServiceBusQueue.drain." + queueDrainName });
|
|
27
23
|
const reportError = reportNonInterruptedFailureCause({ name: "ServiceBusQueue.drain." + queueDrainName });
|
|
28
|
-
const rcc = yield* RequestContextContainer;
|
|
29
24
|
// TODO: or do async?
|
|
30
25
|
// This will make sure that the host receives the error (MainFiberSet.join), who will then interrupt everything and commence a shutdown and restart of app
|
|
31
26
|
// const deferred = yield* Deferred.make<never, ServiceBusError | Error>()
|
|
@@ -45,11 +40,7 @@ export function makeServiceBusQueue(queueName, queueDrainName, schema, drainSche
|
|
|
45
40
|
meta: pretty(meta)
|
|
46
41
|
}), Effect.zipRight(handleEvent(body)), Effect.orDie)
|
|
47
42
|
// we silenceAndReportError here, so that the error is reported, and moves into the Exit.
|
|
48
|
-
.pipe(silenceAndReportError, (_) => setupRequestContext(_,
|
|
49
|
-
id: RequestId(body.id),
|
|
50
|
-
locale: "en",
|
|
51
|
-
name: NonEmptyString255(`${queueDrainName}.${body._tag}`)
|
|
52
|
-
})), Effect
|
|
43
|
+
.pipe(silenceAndReportError, (_) => setupRequestContext(_, meta), Effect
|
|
53
44
|
.withSpan(`queue.drain: ${queueDrainName}${sessionId ? `#${sessionId}` : ""}.${body._tag}`, {
|
|
54
45
|
captureStackTrace: false,
|
|
55
46
|
kind: "consumer",
|
|
@@ -82,13 +73,12 @@ export function makeServiceBusQueue(queueName, queueDrainName, schema, drainSche
|
|
|
82
73
|
.pipe(Effect.andThen(Effect.never)),
|
|
83
74
|
publish: (...messages) => Effect
|
|
84
75
|
.gen(function* () {
|
|
85
|
-
const requestContext = yield*
|
|
86
|
-
const span = yield* Effect.serviceOption(Tracer.ParentSpan);
|
|
76
|
+
const requestContext = yield* getRequestContext;
|
|
87
77
|
return yield* Effect
|
|
88
78
|
.promise((abortSignal) => s.sendMessages(messages.map((m) => ({
|
|
89
79
|
body: JSON.stringify(S.encodeSync(wireSchema)({
|
|
90
80
|
body: m,
|
|
91
|
-
meta:
|
|
81
|
+
meta: requestContext
|
|
92
82
|
})),
|
|
93
83
|
messageId: m.id, /* correllationid: requestId */
|
|
94
84
|
contentType: "application/json",
|
|
@@ -109,4 +99,4 @@ export function makeServiceBusQueue(queueName, queueDrainName, schema, drainSche
|
|
|
109
99
|
export function makeServiceBusLayers(url, queueName, queueDrainName) {
|
|
110
100
|
return Layer.merge(ServiceBusReceiverFactory.Live(queueDrainName), LiveSender(queueName)).pipe(Layer.provide(LiveServiceBusClient(url)));
|
|
111
101
|
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2JxdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9RdWV1ZU1ha2VyL3NicXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLHlCQUF5QixFQUN6QixTQUFTLEVBQ1YsTUFBTSx1Q0FBdUMsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQy9CLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRTFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDN0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLGdDQUFnQyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzdHLE9BQU8sRUFBa0IsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXhEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQU1qQyxTQUFpQixFQUNqQixjQUFzQixFQUN0QixNQUEyQixFQUMzQixXQUEwQztJQUUxQyxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksRUFBRSxNQUFNO1FBQ1osSUFBSSxFQUFFLFNBQVM7S0FDaEIsQ0FBQyxDQUFBO0lBQ0YsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUE7SUFDL0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLENB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
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { S } from "effect-app";
|
|
2
1
|
import type { Effect, NonEmptyReadonlyArray, Scope } from "effect-app";
|
|
3
2
|
import { RequestContext } from "../../RequestContext.js";
|
|
4
|
-
import type { RequestContextContainer } from "../RequestContextContainer.js";
|
|
5
3
|
import type { ContextMapContainer } from "../Store/ContextMapContainer.js";
|
|
6
4
|
export interface QueueBase<Evt, DrainEvt> {
|
|
7
|
-
drain: <DrainE, DrainR>(makeHandleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect<never, never, Scope |
|
|
5
|
+
drain: <DrainE, DrainR>(makeHandleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect<never, never, Scope | ContextMapContainer | DrainR>;
|
|
8
6
|
publish: (...messages: NonEmptyReadonlyArray<Evt>) => Effect<void>;
|
|
9
7
|
}
|
|
10
8
|
/**
|
|
@@ -13,14 +11,5 @@ export interface QueueBase<Evt, DrainEvt> {
|
|
|
13
11
|
export interface QueueMakerOps {
|
|
14
12
|
}
|
|
15
13
|
export declare const QueueMaker: QueueMakerOps;
|
|
16
|
-
export declare const QueueMeta:
|
|
17
|
-
requestContext: typeof RequestContext;
|
|
18
|
-
span: S.optional<import("@effect/schema/Schema").Struct<{
|
|
19
|
-
spanId: typeof S.String;
|
|
20
|
-
traceId: typeof S.String;
|
|
21
|
-
sampled: typeof import("@effect/schema/Schema").Boolean & {
|
|
22
|
-
withDefault: S.PropertySignature<":", boolean, never, ":", boolean, true, never>;
|
|
23
|
-
};
|
|
24
|
-
}>>;
|
|
25
|
-
}>;
|
|
14
|
+
export declare const QueueMeta: typeof RequestContext;
|
|
26
15
|
//# sourceMappingURL=service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/service.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AAE1E,MAAM,WAAW,SAAS,CAAC,GAAG,EAAE,QAAQ;IACtC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EACpB,eAAe,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAC/D,SAAS,CAAC,EAAE,MAAM,KACf,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,mBAAmB,GAAG,MAAM,CAAC,CAAA;IAC/D,OAAO,EAAE,CACP,GAAG,QAAQ,EAAE,qBAAqB,CAAC,GAAG,CAAC,KACpC,MAAM,CAAC,IAAI,CAAC,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;CAAG;AACjC,eAAO,MAAM,UAAU,EAAE,aAAkB,CAAA;AAE3C,eAAO,MAAM,SAAS,uBAAiB,CAAA"}
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
import { S } from "effect-app";
|
|
2
1
|
import { RequestContext } from "../../RequestContext.js";
|
|
3
2
|
export const QueueMaker = {};
|
|
4
|
-
export const QueueMeta =
|
|
5
|
-
|
|
6
|
-
span: S.optional(S.Struct({
|
|
7
|
-
spanId: S.String,
|
|
8
|
-
traceId: S.String,
|
|
9
|
-
sampled: S.Boolean
|
|
10
|
-
}))
|
|
11
|
-
});
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9RdWV1ZU1ha2VyL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUU5QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFrQnhELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBa0IsRUFBRSxDQUFBO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2hDLGNBQWMsRUFBRSxjQUFjO0lBQzlCLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDeEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNO1FBQ2hCLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNqQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87S0FDbkIsQ0FBQyxDQUFDO0NBQ0osQ0FBQyxDQUFBIn0=
|
|
3
|
+
export const QueueMeta = RequestContext;
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9RdWV1ZU1ha2VyL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBaUJ4RCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQWtCLEVBQUUsQ0FBQTtBQUUzQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFBIn0=
|
|
@@ -20,7 +20,7 @@ export declare function log<T, Encoded extends {
|
|
|
20
20
|
*/
|
|
21
21
|
export declare function byIdAndSaveWithPure<T, Encoded extends {
|
|
22
22
|
id: string;
|
|
23
|
-
}, Evt, ItemType extends string, IdKey extends keyof T>(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>, id: T[IdKey]): <R, A, E, S2 extends T>(pure: Effect<A, E, FixEnv<R, Evt, T, S2>>) => Effect.Effect<A, import("effect-app/client/errors").
|
|
23
|
+
}, Evt, ItemType extends string, IdKey extends keyof T>(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>, id: T[IdKey]): <R, A, E, S2 extends T>(pure: Effect<A, E, FixEnv<R, Evt, T, S2>>) => Effect.Effect<A, import("effect-app/client/errors").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | NotFoundError<ItemType> | E, Exclude<R, {
|
|
24
24
|
env: import("effect-app/Pure").PureEnv<Evt, T, S2>;
|
|
25
25
|
}>>;
|
|
26
26
|
/**
|
|
@@ -31,7 +31,7 @@ export declare function handleByIdAndSaveWithPure<T, Encoded extends {
|
|
|
31
31
|
id: string;
|
|
32
32
|
}, Evt, ItemType extends string, IdKey extends keyof T>(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>): <Req extends {
|
|
33
33
|
id: T[IdKey];
|
|
34
|
-
}, Context, R, A, E, S2 extends T>(pure: (req: Req, ctx: Context) => Effect<A, E, FixEnv<R, Evt, T, S2>>) => (req: Req, ctx: Context) => Effect.Effect<A, import("effect-app/client/errors").
|
|
34
|
+
}, Context, R, A, E, S2 extends T>(pure: (req: Req, ctx: Context) => Effect<A, E, FixEnv<R, Evt, T, S2>>) => (req: Req, ctx: Context) => Effect.Effect<A, import("effect-app/client/errors").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | E | NotFoundError<ItemType>, Exclude<R, {
|
|
35
35
|
env: import("effect-app/Pure").PureEnv<Evt, T, S2>;
|
|
36
36
|
}>>;
|
|
37
37
|
/**
|
|
@@ -39,7 +39,7 @@ export declare function handleByIdAndSaveWithPure<T, Encoded extends {
|
|
|
39
39
|
*/
|
|
40
40
|
export declare function saveManyWithPure_<R, T, Encoded extends {
|
|
41
41
|
id: string;
|
|
42
|
-
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string, IdKey extends keyof T>(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>, items: Iterable<S1>, pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>): Effect.Effect<A, import("effect-app/client/errors").
|
|
42
|
+
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string, IdKey extends keyof T>(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>, items: Iterable<S1>, pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>): Effect.Effect<A, import("effect-app/client/errors").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | E, Exclude<R, {
|
|
43
43
|
env: import("effect-app/Pure").PureEnv<Evt, readonly S1[], readonly S2[]>;
|
|
44
44
|
}>>;
|
|
45
45
|
/**
|
|
@@ -47,18 +47,18 @@ export declare function saveManyWithPure_<R, T, Encoded extends {
|
|
|
47
47
|
*/
|
|
48
48
|
export declare function saveWithPure_<R, T, Encoded extends {
|
|
49
49
|
id: string;
|
|
50
|
-
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string, IdKey extends keyof T>(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>, item: S1, pure: Effect<A, E, FixEnv<R, Evt, S1, S2>>): Effect.Effect<A, import("effect-app/client/errors").
|
|
50
|
+
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string, IdKey extends keyof T>(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>, item: S1, pure: Effect<A, E, FixEnv<R, Evt, S1, S2>>): Effect.Effect<A, import("effect-app/client/errors").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | E, Exclude<R, {
|
|
51
51
|
env: import("effect-app/Pure").PureEnv<Evt, S1, S2>;
|
|
52
52
|
}>>;
|
|
53
53
|
export declare function saveAllWithEffectInt<T, Encoded extends {
|
|
54
54
|
id: string;
|
|
55
|
-
}, P extends T, Evt, ItemType extends string, IdKey extends keyof T, R, E, A>(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>, gen: Effect<readonly [Iterable<P>, Iterable<Evt>, A], E, R>): Effect.Effect<A, import("effect-app/client/errors").
|
|
55
|
+
}, P extends T, Evt, ItemType extends string, IdKey extends keyof T, R, E, A>(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>, gen: Effect<readonly [Iterable<P>, Iterable<Evt>, A], E, R>): Effect.Effect<A, import("effect-app/client/errors").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | E, R>;
|
|
56
56
|
/**
|
|
57
57
|
* @tsplus fluent Repository saveManyWithPureBatched
|
|
58
58
|
*/
|
|
59
59
|
export declare function saveManyWithPureBatched<T, Encoded extends {
|
|
60
60
|
id: string;
|
|
61
|
-
}, Evt, ItemType extends string, IdKey extends keyof T>(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>, batchSize?: number): <R, A, E, S1 extends T, S2 extends T>(pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>) => (items: Iterable<S1>) => Effect.Effect<A[], import("effect-app/client/errors").
|
|
61
|
+
}, Evt, ItemType extends string, IdKey extends keyof T>(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>, batchSize?: number): <R, A, E, S1 extends T, S2 extends T>(pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>) => (items: Iterable<S1>) => Effect.Effect<A[], import("effect-app/client/errors").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | E, Exclude<R, {
|
|
62
62
|
env: import("effect-app/Pure").PureEnv<Evt, readonly S1[], readonly S2[]>;
|
|
63
63
|
}>>;
|
|
64
64
|
/**
|
|
@@ -66,7 +66,7 @@ export declare function saveManyWithPureBatched<T, Encoded extends {
|
|
|
66
66
|
*/
|
|
67
67
|
export declare function saveManyWithPureBatched_<R, T, Encoded extends {
|
|
68
68
|
id: string;
|
|
69
|
-
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string, IdKey extends keyof T>(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>, items: Iterable<S1>, pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>, batchSize?: number): Effect.Effect<A[], import("effect-app/client/errors").
|
|
69
|
+
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string, IdKey extends keyof T>(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>, items: Iterable<S1>, pure: Effect<A, E, FixEnv<R, Evt, readonly S1[], readonly S2[]>>, batchSize?: number): Effect.Effect<A[], import("effect-app/client/errors").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | E, Exclude<R, {
|
|
70
70
|
env: import("effect-app/Pure").PureEnv<Evt, readonly S1[], readonly S2[]>;
|
|
71
71
|
}>>;
|
|
72
72
|
/**
|
|
@@ -74,13 +74,13 @@ export declare function saveManyWithPureBatched_<R, T, Encoded extends {
|
|
|
74
74
|
*/
|
|
75
75
|
export declare function save<T, Encoded extends {
|
|
76
76
|
id: string;
|
|
77
|
-
}, Evt, ItemType extends string, IdKey extends keyof T>(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>): (items_0: T, ...items: T[]) => Effect<void, import("effect-app/client/errors").
|
|
77
|
+
}, Evt, ItemType extends string, IdKey extends keyof T>(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>): (items_0: T, ...items: T[]) => Effect<void, import("effect-app/client/errors").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException>;
|
|
78
78
|
/**
|
|
79
79
|
* @tsplus getter Repository saveWithEvents
|
|
80
80
|
*/
|
|
81
81
|
export declare function saveWithEvents<T, Encoded extends {
|
|
82
82
|
id: string;
|
|
83
|
-
}, Evt, ItemType extends string, IdKey extends keyof T>(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>): (events: Iterable<Evt>) => (items_0: T, ...items: T[]) => Effect<void, import("effect-app/client/errors").
|
|
83
|
+
}, Evt, ItemType extends string, IdKey extends keyof T>(self: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>): (events: Iterable<Evt>) => (items_0: T, ...items: T[]) => Effect<void, import("effect-app/client/errors").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException>;
|
|
84
84
|
/**
|
|
85
85
|
* @tsplus fluent Repository updateWithEffect
|
|
86
86
|
*/
|
|
@@ -88,7 +88,7 @@ export declare function itemUpdateWithEffect<R, E, T extends {
|
|
|
88
88
|
id: string;
|
|
89
89
|
}, Encoded extends {
|
|
90
90
|
id: string;
|
|
91
|
-
}, Evt, ItemType extends string, IdKey extends keyof T>(repo: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>, id: T[IdKey], mod: (item: T) => Effect<T, E, R>): Effect.Effect<void, import("effect-app/client/errors").
|
|
91
|
+
}, Evt, ItemType extends string, IdKey extends keyof T>(repo: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>, id: T[IdKey], mod: (item: T) => Effect<T, E, R>): Effect.Effect<void, import("effect-app/client/errors").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | E | NotFoundError<ItemType>, R>;
|
|
92
92
|
/**
|
|
93
93
|
* @tsplus fluent Repository update
|
|
94
94
|
*/
|
|
@@ -96,7 +96,7 @@ export declare function itemUpdate<T extends {
|
|
|
96
96
|
id: string;
|
|
97
97
|
}, Encoded extends {
|
|
98
98
|
id: string;
|
|
99
|
-
}, Evt, ItemType extends string, IdKey extends keyof T>(repo: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>, id: T[IdKey], mod: (item: T) => T): Effect.Effect<void, import("effect-app/client/errors").
|
|
99
|
+
}, Evt, ItemType extends string, IdKey extends keyof T>(repo: RepositoryBaseC<T, Encoded, Evt, ItemType, IdKey>, id: T[IdKey], mod: (item: T) => T): Effect.Effect<void, import("effect-app/client/errors").InvalidStateError | import("effect-app/client/errors").OptimisticConcurrencyException | NotFoundError<ItemType>, never>;
|
|
100
100
|
/**
|
|
101
101
|
* only use this as a shortcut if you don't have the item already
|
|
102
102
|
* @tsplus fluent Repository removeById
|
|
@@ -78,8 +78,8 @@ export declare class RepositoryBaseC3<T, Encoded extends {
|
|
|
78
78
|
get(id: T[IdKey]): Effect.Effect<T, NotFoundError<ItemType>, never>;
|
|
79
79
|
readonly log: (evt: Evt) => import("effect-app/Pure").PureLogT<any>;
|
|
80
80
|
removeById(id: T[IdKey]): Effect.Effect<void, NotFoundError<ItemType>, never>;
|
|
81
|
-
readonly save: (items_0: T, ...items: T[]) => Effect<void,
|
|
82
|
-
readonly saveWithEvents: (events: Iterable<Evt>) => (items_0: T, ...items: T[]) => Effect<void,
|
|
81
|
+
readonly save: (items_0: T, ...items: T[]) => Effect<void, InvalidStateError | OptimisticConcurrencyException>;
|
|
82
|
+
readonly saveWithEvents: (events: Iterable<Evt>) => (items_0: T, ...items: T[]) => Effect<void, InvalidStateError | OptimisticConcurrencyException>;
|
|
83
83
|
readonly queryAndSavePure: {
|
|
84
84
|
<A, E2, R2, T2 extends T>(q: (q: Query<Encoded>) => QueryEnd<Encoded, "one">, pure: Effect<A, E2, FixEnv<R2, Evt, T, T2>>): Effect.Effect<A, InvalidStateError | OptimisticConcurrencyException | NotFoundError<ItemType> | E2, Exclude<R2, {
|
|
85
85
|
env: PureEnv<Evt, T, T2>;
|
|
@@ -96,7 +96,7 @@ export declare class RepositoryBaseC3<T, Encoded extends {
|
|
|
96
96
|
*/
|
|
97
97
|
readonly handleByIdAndSaveWithPure: <Req extends {
|
|
98
98
|
id: T[IdKey];
|
|
99
|
-
}, Context, R, A, E, S2 extends T>(pure: (req: Req, ctx: Context) => Effect<A, E, FixEnv<R, Evt, T, S2>>) => (req: Req, ctx: Context) => Effect.Effect<A,
|
|
99
|
+
}, Context, R, A, E, S2 extends T>(pure: (req: Req, ctx: Context) => Effect<A, E, FixEnv<R, Evt, T, S2>>) => (req: Req, ctx: Context) => Effect.Effect<A, InvalidStateError | OptimisticConcurrencyException | NotFoundError<ItemType> | E, Exclude<R, {
|
|
100
100
|
env: PureEnv<Evt, T, S2>;
|
|
101
101
|
}>>;
|
|
102
102
|
saveManyWithPure: {
|
|
@@ -112,7 +112,7 @@ export declare class RepositoryBaseC3<T, Encoded extends {
|
|
|
112
112
|
env: PureEnv<Evt, T, S2>;
|
|
113
113
|
}>>;
|
|
114
114
|
};
|
|
115
|
-
saveWithPure<R, A, E, S1 extends T, S2 extends T>(item: S1, pure: Effect<A, E, FixEnv<R, Evt, S1, S2>>): Effect.Effect<A,
|
|
115
|
+
saveWithPure<R, A, E, S1 extends T, S2 extends T>(item: S1, pure: Effect<A, E, FixEnv<R, Evt, S1, S2>>): Effect.Effect<A, InvalidStateError | OptimisticConcurrencyException | E, Exclude<R, {
|
|
116
116
|
env: PureEnv<Evt, S1, S2>;
|
|
117
117
|
}>>;
|
|
118
118
|
}
|
|
@@ -133,7 +133,7 @@ export declare function makeRepo<Evt = never>(): <ItemType extends string, R, En
|
|
|
133
133
|
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
134
134
|
partitionValue?: (a: Encoded) => string;
|
|
135
135
|
};
|
|
136
|
-
}) => Effect.Effect<Repository<T, Encoded, Evt, ItemType, IdKey>, E,
|
|
136
|
+
}) => Effect.Effect<Repository<T, Encoded, Evt, ItemType, IdKey>, E, R | RInitial | R2 | StoreMaker | ContextMapContainer>;
|
|
137
137
|
Q: Query<Encoded>;
|
|
138
138
|
};
|
|
139
139
|
export declare function makeStore<Encoded extends {
|
|
@@ -142,7 +142,7 @@ export declare function makeStore<Encoded extends {
|
|
|
142
142
|
id: string;
|
|
143
143
|
}, T>(name: ItemType, schema: S.Schema<T, E, R>, mapTo: (e: E, etag: string | undefined) => Encoded) => <RInitial = never, EInitial = never>(makeInitial?: Effect<readonly T[], EInitial, RInitial>, config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
144
144
|
partitionValue?: (a: Encoded) => string;
|
|
145
|
-
}) => Effect.Effect<import("./Store.js").Store<Encoded, string, PersistenceModelType<Encoded>>, EInitial,
|
|
145
|
+
}) => Effect.Effect<import("./Store.js").Store<Encoded, string, PersistenceModelType<Encoded>>, EInitial, R | RInitial | StoreMaker>;
|
|
146
146
|
export interface Repos<T, Encoded extends {
|
|
147
147
|
id: string;
|
|
148
148
|
}, R, Evt, ItemType extends string, IdKey extends keyof T> {
|