@effect-app/infra 1.45.1 → 1.46.1
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 +33 -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 +17 -14
- 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/Store/Memory.cjs +4 -7
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/dist/RequestContext.d.ts +22 -65
- 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 +8 -7
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +33 -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 +5 -5
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +4 -5
- package/dist/logger/shared.d.ts +2 -2
- package/dist/logger/shared.d.ts.map +1 -1
- package/dist/logger/shared.js +14 -11
- package/dist/services/Operations.d.ts +3 -3
- 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/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 +5 -15
- package/src/RequestContext.ts +16 -47
- package/src/api/internal/RequestContextMiddleware.ts +10 -31
- package/src/api/internal/events.ts +2 -2
- package/src/api/setupRequest.ts +44 -72
- package/src/errorReporter.ts +4 -6
- package/src/logger/jsonLogger.ts +4 -4
- package/src/logger/logFmtLogger.ts +3 -4
- package/src/logger/shared.ts +16 -10
- 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/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
|
@@ -3,53 +3,34 @@ import { HttpMiddleware, HttpServerRequest, HttpServerResponse } from "effect-ap
|
|
|
3
3
|
import { RequestId } from "effect-app/ids";
|
|
4
4
|
import { NonEmptyString255 } from "effect-app/schema";
|
|
5
5
|
import { Locale, RequestContext } from "../../RequestContext.js";
|
|
6
|
-
import {
|
|
7
|
-
import { setupExistingRequestContext } from "../setupRequest.js";
|
|
6
|
+
import { setupRequestContext } from "../setupRequest.js";
|
|
8
7
|
export const RequestContextMiddleware = (defaultLocale = "en") => HttpMiddleware.make((app) => Effect.gen(function* () {
|
|
9
8
|
const req = yield* HttpServerRequest.HttpServerRequest;
|
|
10
|
-
const currentSpan = yield* Effect.currentSpan;
|
|
11
|
-
const parent = currentSpan?.parent ? currentSpan.parent.value : undefined;
|
|
12
|
-
const start = new Date();
|
|
9
|
+
const currentSpan = yield* Effect.currentSpan.pipe(Effect.orDie);
|
|
13
10
|
const supported = Locale.literals;
|
|
14
11
|
const desiredLocale = req.headers["x-locale"];
|
|
15
12
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any
|
|
16
13
|
const locale = desiredLocale && supported.includes(desiredLocale)
|
|
17
14
|
? desiredLocale
|
|
18
15
|
: defaultLocale;
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
? RequestId(parent.spanId)
|
|
22
|
-
: requestId
|
|
23
|
-
? RequestId(requestId)
|
|
24
|
-
: RequestId.make();
|
|
25
|
-
const storeId = req.headers["x-store-id"];
|
|
26
|
-
const namespace = NonEmptyString255((storeId && (Array.isArray(storeId) ? storeId[0] : storeId)) || "primary");
|
|
16
|
+
const ns = req.headers["x-store-id"];
|
|
17
|
+
const namespace = NonEmptyString255((ns && (Array.isArray(ns) ? ns[0] : ns)) || "primary");
|
|
27
18
|
const deviceId = req.headers["x-fe-device-id"];
|
|
28
19
|
const requestContext = new RequestContext({
|
|
29
|
-
|
|
30
|
-
|
|
20
|
+
span: {
|
|
21
|
+
traceId: RequestId(currentSpan.traceId),
|
|
22
|
+
spanId: RequestId(currentSpan.spanId),
|
|
23
|
+
sampled: currentSpan.sampled
|
|
24
|
+
},
|
|
31
25
|
name: NonEmptyString255(req.originalUrl), // set more detailed elsewhere
|
|
32
26
|
locale,
|
|
33
|
-
createdAt: start,
|
|
34
27
|
namespace,
|
|
35
28
|
sourceId: deviceId ? NonEmptyString255(deviceId) : undefined
|
|
36
|
-
// ...(context.operation.parentId
|
|
37
|
-
// ? {
|
|
38
|
-
// parent: new RequestContextParent({
|
|
39
|
-
// id: RequestId(context.operation.parentId),
|
|
40
|
-
// locale,
|
|
41
|
-
// name: NonEmptyString255("API Request")
|
|
42
|
-
// })
|
|
43
|
-
// }
|
|
44
|
-
// : {})
|
|
45
29
|
});
|
|
46
|
-
const
|
|
47
|
-
yield* rcc.update((_) => requestContext);
|
|
48
|
-
const res = yield* setupExistingRequestContext(app, requestContext);
|
|
30
|
+
const res = yield* setupRequestContext(app, requestContext);
|
|
49
31
|
// TODO: how to set also on errors?
|
|
50
32
|
return HttpServerResponse.setHeaders(res, {
|
|
51
|
-
"request-id": requestContext.rootId,
|
|
52
33
|
"Content-Language": requestContext.locale
|
|
53
34
|
});
|
|
54
35
|
}));
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdENvbnRleHRNaWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9pbnRlcm5hbC9SZXF1ZXN0Q29udGV4dE1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNuQyxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDdkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFeEQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxnQkFBd0IsSUFBSSxFQUFFLEVBQUUsQ0FDdkUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQzFCLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQ2xCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFBO0lBRXRELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoRSxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFBO0lBQ2pDLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDN0MscUdBQXFHO0lBQ3JHLE1BQU0sTUFBTSxHQUFHLGFBQWEsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLGFBQW9CLENBQUM7UUFDdEUsQ0FBQyxDQUFFLGFBQTBDO1FBQzdDLENBQUMsQ0FBQyxhQUFhLENBQUE7SUFFakIsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUNwQyxNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQTtJQUMxRixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFFOUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUM7UUFDeEMsSUFBSSxFQUFFO1lBQ0osT0FBTyxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO1lBQ3ZDLE1BQU0sRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUNyQyxPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU87U0FDN0I7UUFDRCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLDhCQUE4QjtRQUN4RSxNQUFNO1FBQ04sU0FBUztRQUNULFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO0tBQzdELENBQUMsQ0FBQTtJQUNGLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUUzRCxtQ0FBbUM7SUFDbkMsT0FBTyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ3hDLGtCQUFrQixFQUFFLGNBQWMsQ0FBQyxNQUFNO0tBQzFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUNILENBQUEifQ==
|
|
@@ -5,5 +5,5 @@ export declare const makeSSE: <A extends {
|
|
|
5
5
|
}, E, R, SI, SR>(events: Stream.Stream<{
|
|
6
6
|
evt: A;
|
|
7
7
|
namespace: string;
|
|
8
|
-
}, E, R>, schema: S.Schema<A, SI, SR>) => Effect.Effect<HttpServerResponse.HttpServerResponse, never, import("../../services/
|
|
8
|
+
}, E, R>, schema: S.Schema<A, SI, SR>) => Effect.Effect<HttpServerResponse.HttpServerResponse, never, import("../../services/Store/ContextMapContainer.js").ContextMapContainer | Exclude<Exclude<R, import("effect/Tracer").ParentSpan>, never> | Exclude<Exclude<SR, import("effect/Tracer").ParentSpan>, never>>;
|
|
9
9
|
//# sourceMappingURL=events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/api/internal/events.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,MAAM,EAAQ,CAAC,EAAY,MAAM,EAAE,MAAM,YAAY,CAAA;AACxE,OAAO,EAAe,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAOjE,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS;IAAE,EAAE,EAAE,GAAG,CAAA;CAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,UACjD,MAAM,CAAC,MAAM,CAAC;IAAE,GAAG,EAAE,CAAC,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE,CAAC,CAAC,UAClD,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/api/internal/events.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,MAAM,EAAQ,CAAC,EAAY,MAAM,EAAE,MAAM,YAAY,CAAA;AACxE,OAAO,EAAe,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAOjE,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS;IAAE,EAAE,EAAE,GAAG,CAAA;CAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,UACjD,MAAM,CAAC,MAAM,CAAC;IAAE,GAAG,EAAE,CAAC,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE,CAAC,CAAC,UAClD,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,8QA2CoE,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { setupRequestContextFromCurrent } from "@effect-app/infra/api/setupRequest";
|
|
2
2
|
import { reportError } from "@effect-app/infra/errorReporter";
|
|
3
3
|
import { Duration, Effect, pipe, S, Schedule, Stream } from "effect-app";
|
|
4
4
|
import { HttpHeaders, HttpServerResponse } from "effect-app/http";
|
|
@@ -27,5 +27,5 @@ export const makeSSE = (events, schema) => Effect
|
|
|
27
27
|
});
|
|
28
28
|
return res;
|
|
29
29
|
})
|
|
30
|
-
.pipe(Effect.tapErrorCause(reportError("Request")), (
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
.pipe(Effect.tapErrorCause(reportError("Request")), setupRequestContextFromCurrent("events"));
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9pbnRlcm5hbC9ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFDbkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRTdDLG9FQUFvRTtBQUNwRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBQy9DLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRXRHLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUNyQixNQUEwRCxFQUMxRCxNQUEyQixFQUMzQixFQUFFLENBQ0YsTUFBTTtLQUNILEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFDWixLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLDZCQUE2QixDQUFDLENBQUE7SUFFekQsTUFBTSxHQUFHLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQTtJQUU3QixNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBRS9CLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQ2hDLE1BQU0sRUFDTixDQUFDLENBQUMsRUFBRSxFQUFFLENBQ0osTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7U0FDVixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsV0FBVyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUNwRixDQUFBO0lBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUNqQixRQUFRLEVBQ1IsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFDdkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFDekIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FDMUMsQ0FBQTtJQUVELE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQVUsQ0FBQTtJQUMzQyxNQUFNLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQ25DLE1BQU07U0FDSCxJQUFJLENBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDNUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FDM0IsRUFDSDtRQUNFLFdBQVcsRUFBRSxtQkFBbUI7UUFDaEMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDN0IsY0FBYyxFQUFFLG1CQUFtQjtZQUNuQyxlQUFlLEVBQUUsVUFBVTtZQUMzQixtQkFBbUIsRUFBRSxJQUFJO1lBQ3pCLFlBQVksRUFBRSxZQUFZLENBQUMsaUNBQWlDO1NBQzdELENBQUM7S0FDSCxDQUNGLENBQUE7SUFDRCxPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUMsQ0FBQztLQUNELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLDhCQUE4QixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUEifQ==
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import { NonEmptyString255 } from "@effect-app/schema";
|
|
1
2
|
import { Effect } from "effect-app";
|
|
2
3
|
import { RequestContext } from "../RequestContext.js";
|
|
3
|
-
import { RequestContextContainer } from "../services/RequestContextContainer.js";
|
|
4
4
|
import { ContextMapContainer } from "../services/Store/ContextMapContainer.js";
|
|
5
|
-
export declare
|
|
6
|
-
export declare
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export declare
|
|
5
|
+
export declare const getRequestContext: Effect.Effect<RequestContext, never, never>;
|
|
6
|
+
export declare const getRC: Effect.Effect<{
|
|
7
|
+
locale: "en" | "de";
|
|
8
|
+
namespace: NonEmptyString255;
|
|
9
|
+
}, never, never>;
|
|
10
|
+
export declare const setupRequestContextFromCurrent: (name?: string) => <R, E, A>(self: Effect<A, E, R>) => Effect.Effect<A, E, ContextMapContainer | Exclude<Exclude<R, import("effect/Tracer").ParentSpan>, never>>;
|
|
11
|
+
export declare function setupRequestContext<R, E, A>(self: Effect<A, E, R>, requestContext: RequestContext): Effect.Effect<A, E, ContextMapContainer | Exclude<Exclude<R, import("effect/Tracer").ParentSpan>, never>>;
|
|
11
12
|
//# sourceMappingURL=setupRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupRequest.d.ts","sourceRoot":"","sources":["../../src/api/setupRequest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setupRequest.d.ts","sourceRoot":"","sources":["../../src/api/setupRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,MAAM,EAAmB,MAAM,YAAY,CAAA;AACpD,OAAO,EAAa,cAAc,EAAkB,MAAM,sBAAsB,CAAA;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAG9E,eAAO,MAAM,iBAAiB,6CAgB3B,CAAA;AAEH,eAAO,MAAM,KAAK;;;gBAGhB,CAAA;AAgBF,eAAO,MAAM,8BAA8B,sBAA0B,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,8GAK9F,CAAA;AAGL,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,6GAWjG"}
|
package/dist/api/setupRequest.js
CHANGED
|
@@ -1,53 +1,39 @@
|
|
|
1
1
|
import { NonEmptyString255 } from "@effect-app/schema";
|
|
2
|
-
import { Effect,
|
|
3
|
-
import {
|
|
4
|
-
import { RequestContext, spanAttributes } from "../RequestContext.js";
|
|
5
|
-
import { RequestContextContainer } from "../services/RequestContextContainer.js";
|
|
2
|
+
import { Effect, FiberRef, Layer } from "effect-app";
|
|
3
|
+
import { LocaleRef, RequestContext, spanAttributes } from "../RequestContext.js";
|
|
6
4
|
import { ContextMapContainer } from "../services/Store/ContextMapContainer.js";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
Effect.
|
|
22
|
-
|
|
5
|
+
import { storeId } from "../services/Store/Memory.js";
|
|
6
|
+
export const getRequestContext = Effect
|
|
7
|
+
.all({
|
|
8
|
+
span: Effect.currentSpan.pipe(Effect.orDie),
|
|
9
|
+
locale: FiberRef.get(LocaleRef),
|
|
10
|
+
namespace: FiberRef.get(storeId)
|
|
11
|
+
})
|
|
12
|
+
.pipe(Effect.map(({ locale, namespace, span }) => new RequestContext({
|
|
13
|
+
span,
|
|
14
|
+
locale,
|
|
15
|
+
namespace,
|
|
16
|
+
// TODO: get through span context, or don't care at all.
|
|
17
|
+
name: NonEmptyString255("_root_")
|
|
18
|
+
})));
|
|
19
|
+
export const getRC = Effect.all({
|
|
20
|
+
locale: FiberRef.get(LocaleRef),
|
|
21
|
+
namespace: FiberRef.get(storeId)
|
|
22
|
+
});
|
|
23
|
+
const withRequestSpan = (name = "request") => (f) => Effect.andThen(getRC, (ctx) => f.pipe(Effect.withSpan(name, { attributes: spanAttributes(ctx), captureStackTrace: false }),
|
|
24
|
+
// TODO: false
|
|
23
25
|
// request context info is picked up directly in the logger for annotations.
|
|
24
|
-
Effect.withLogSpan(
|
|
26
|
+
Effect.withLogSpan(name)));
|
|
25
27
|
const setupContextMap = Effect.andThen(ContextMapContainer, (_) => _.start).pipe(Layer.effectDiscard);
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
//
|
|
29
|
-
// const RequestContextLive = RequestContextContainer.get.toLayer(RequestContext.Tag)
|
|
30
|
-
const RequestContextStartLiveFromRequestContext = (requestContext) => Layer.provideMerge(setupContextMap,
|
|
31
|
-
// .provideMerge(RequestContextLiveFromRequestContext(requestContext))
|
|
32
|
-
Effect
|
|
33
|
-
.andThen(RequestContextContainer, (_) => _.start(requestContext))
|
|
34
|
-
.pipe(Layer.effectDiscard));
|
|
35
|
-
const RequestContextStartLive = (requestContext) => typeof requestContext === "string"
|
|
36
|
-
? pipe(makeInternalRequestContext(requestContext), Effect.andThen(RequestContextStartLiveFromRequestContext), Layer.unwrapEffect)
|
|
37
|
-
: RequestContextStartLiveFromRequestContext(requestContext);
|
|
28
|
+
export const setupRequestContextFromCurrent = (name = "request") => (self) => self
|
|
29
|
+
.pipe(withRequestSpan(name), Effect.provide(setupContextMap));
|
|
30
|
+
// TODO: consider integrating Effect.withParentSpan
|
|
38
31
|
export function setupRequestContext(self, requestContext) {
|
|
39
|
-
return
|
|
40
|
-
.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
const UpdateRequestContextLive = (f) => Effect.andThen(RequestContextContainer, (rcc) => rcc.update(f)).pipe(Layer.effectDiscard);
|
|
47
|
-
/**
|
|
48
|
-
* @tsplus fluent effect/io/Effect updateRequestContext
|
|
49
|
-
*/
|
|
50
|
-
export function updateRequestContext(self, f) {
|
|
51
|
-
return Effect.provide(self, UpdateRequestContextLive(f));
|
|
32
|
+
return Effect.gen(function* () {
|
|
33
|
+
yield* FiberRef.set(LocaleRef, requestContext.locale);
|
|
34
|
+
yield* FiberRef.set(storeId, requestContext.namespace);
|
|
35
|
+
return yield* self
|
|
36
|
+
.pipe(withRequestSpan(requestContext.name), Effect.provide(setupContextMap));
|
|
37
|
+
});
|
|
52
38
|
}
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9zZXR1cFJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFBO0FBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUVyRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNO0tBQ3BDLEdBQUcsQ0FBQztJQUNILElBQUksRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNDLE1BQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztJQUMvQixTQUFTLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7Q0FDakMsQ0FBQztLQUNELElBQUksQ0FDSCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FDekMsSUFBSSxjQUFjLENBQUM7SUFDakIsSUFBSTtJQUNKLE1BQU07SUFDTixTQUFTO0lBQ1Qsd0RBQXdEO0lBQ3hELElBQUksRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7Q0FDbEMsQ0FBQyxDQUNILENBQ0YsQ0FBQTtBQUVILE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQzlCLE1BQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztJQUMvQixTQUFTLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7Q0FDakMsQ0FBQyxDQUFBO0FBRUYsTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUFJLEdBQUcsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFVLENBQWtCLEVBQUUsRUFBRSxDQUM1RSxNQUFNLENBQUMsT0FBTyxDQUNaLEtBQUssRUFDTCxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ04sQ0FBQyxDQUFDLElBQUksQ0FDSixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDcEYsY0FBYztBQUNkLDRFQUE0RTtBQUM1RSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUN6QixDQUNKLENBQUE7QUFFSCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUVyRyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLElBQUksR0FBRyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQVUsSUFBcUIsRUFBRSxFQUFFLENBQ3JHLElBQUk7S0FDRCxJQUFJLENBQ0gsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUNyQixNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUNoQyxDQUFBO0FBRUwsbURBQW1EO0FBQ25ELE1BQU0sVUFBVSxtQkFBbUIsQ0FBVSxJQUFxQixFQUFFLGNBQThCO0lBQ2hHLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDekIsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3JELEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUV0RCxPQUFPLEtBQUssQ0FBQyxDQUFDLElBQUk7YUFDZixJQUFJLENBQ0gsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFDcEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FDaEMsQ0FBQTtJQUNMLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorReporter.d.ts","sourceRoot":"","sources":["../src/errorReporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"errorReporter.d.ts","sourceRoot":"","sources":["../src/errorReporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,cAAc,EAA4B,MAAM,aAAa,CAAA;AAGtE,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,WAEG,KAAK,CAAC,OAAO,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,sEAwBhE;AAgBD,wBAAgB,QAAQ,CAAC,CAAC,EACxB,IAAI,EAAE,MAAM,WAEG,KAAK,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,uCAkB1D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,QAG9C;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,qCAS9E"}
|
package/dist/errorReporter.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { dropUndefined } from "@effect-app/core/utils";
|
|
2
2
|
import * as Sentry from "@sentry/node";
|
|
3
|
-
import { Cause, Effect
|
|
3
|
+
import { Cause, Effect } from "effect-app";
|
|
4
|
+
import { getRC } from "./api/setupRequest.js";
|
|
4
5
|
import { CauseException, ErrorReported, tryToJson } from "./errors.js";
|
|
5
6
|
import { InfraLogger } from "./logger.js";
|
|
6
|
-
import { RequestContextContainer } from "./services/RequestContextContainer.js";
|
|
7
7
|
export function reportError(name) {
|
|
8
8
|
return (cause, extras) => Effect.gen(function* () {
|
|
9
9
|
if (Cause.isInterrupted(cause)) {
|
|
@@ -24,8 +24,7 @@ export function reportError(name) {
|
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
function reportSentry(error, extras) {
|
|
27
|
-
return
|
|
28
|
-
const context = Option.getOrUndefined(ctx);
|
|
27
|
+
return getRC.pipe(Effect.map((context) => {
|
|
29
28
|
const scope = new Sentry.Scope();
|
|
30
29
|
if (context)
|
|
31
30
|
scope.setContext("context", context);
|
|
@@ -56,8 +55,7 @@ export function captureException(error) {
|
|
|
56
55
|
console.error(error);
|
|
57
56
|
}
|
|
58
57
|
export function reportMessage(message, extras) {
|
|
59
|
-
return
|
|
60
|
-
const context = Option.getOrUndefined(ctx);
|
|
58
|
+
return getRC.pipe(Effect.map((context) => {
|
|
61
59
|
const scope = new Sentry.Scope();
|
|
62
60
|
if (context)
|
|
63
61
|
scope.setContext("context", context);
|
|
@@ -67,4 +65,4 @@ export function reportMessage(message, extras) {
|
|
|
67
65
|
console.warn(message);
|
|
68
66
|
}));
|
|
69
67
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JSZXBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lcnJvclJlcG9ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RCxPQUFPLEtBQUssTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFekMsTUFBTSxVQUFVLFdBQVcsQ0FDekIsSUFBWTtJQUVaLE9BQU8sQ0FBQyxLQUFxQixFQUFFLE1BQWdDLEVBQUUsRUFBRSxDQUNqRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNsQixJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvQixLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDNUcsT0FBTTtRQUNSLENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFFN0MsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUNsQyxLQUFLLENBQUMsQ0FBQyxXQUFXO2FBQ2YsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonLogger.d.ts","sourceRoot":"","sources":["../../src/logger/jsonLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,MAAM,
|
|
1
|
+
{"version":3,"file":"jsonLogger.d.ts","sourceRoot":"","sources":["../../src/logger/jsonLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,MAAM,EAAE,MAAM,YAAY,CAAA;AAGlE,eAAO,MAAM,UAAU,8BAyBtB,CAAA;AAED,eAAO,MAAM,OAAO,mDAA+E,CAAA"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { Cause, FiberId, HashMap, List, Logger
|
|
2
|
-
import {
|
|
1
|
+
import { Cause, FiberId, HashMap, List, Logger } from "effect-app";
|
|
2
|
+
import { getRequestContextFromFiberRefs } from "./shared.js";
|
|
3
3
|
export const jsonLogger = Logger.make(({ annotations, cause, context, fiberId, logLevel, message, spans }) => {
|
|
4
4
|
const now = new Date();
|
|
5
5
|
const nowMillis = now.getTime();
|
|
6
|
-
const
|
|
6
|
+
const request = getRequestContextFromFiberRefs(context);
|
|
7
7
|
const data = {
|
|
8
8
|
timestamp: now,
|
|
9
9
|
level: logLevel.label,
|
|
10
10
|
fiber: FiberId.threadName(fiberId),
|
|
11
11
|
message,
|
|
12
|
-
request
|
|
12
|
+
request,
|
|
13
13
|
cause: cause !== null && cause !== Cause.empty ? Cause.pretty(cause, { renderErrorCause: true }) : undefined,
|
|
14
14
|
spans: List.map(spans, (_) => ({ label: _.label, timing: nowMillis - _.startTime })).pipe(List.toArray),
|
|
15
15
|
annotations: HashMap.size(annotations) > 0
|
|
@@ -22,4 +22,4 @@ export const jsonLogger = Logger.make(({ annotations, cause, context, fiberId, l
|
|
|
22
22
|
globalThis.console.log(JSON.stringify(data));
|
|
23
23
|
});
|
|
24
24
|
export const logJson = Logger.replace(Logger.defaultLogger, Logger.withSpanAnnotations(jsonLogger));
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbkxvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dnZXIvanNvbkxvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNsRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFNUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ25DLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO0lBQ3JFLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUE7SUFDdEIsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRS9CLE1BQU0sT0FBTyxHQUFHLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRXZELE1BQU0sSUFBSSxHQUFHO1FBQ1gsU0FBUyxFQUFFLEdBQUc7UUFDZCxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7UUFDckIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ2xDLE9BQU87UUFDUCxPQUFPO1FBQ1AsS0FBSyxFQUFFLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM1RyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDdkcsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUN4QyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUNYLE9BQU8sSUFBSSxDQUFBO1lBQ2IsQ0FBQyxFQUFFLEVBQTZCLENBQUM7WUFDakMsQ0FBQyxDQUFDLFNBQVM7S0FDZCxDQUFBO0lBRUQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBQzlDLENBQUMsQ0FDRixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQSJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logFmtLogger.d.ts","sourceRoot":"","sources":["../../src/logger/logFmtLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"logFmtLogger.d.ts","sourceRoot":"","sources":["../../src/logger/logFmtLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,YAAY,CAAA;AAI5C,eAAO,MAAM,YAAY,8BAaxB,CAAA;AAED,eAAO,MAAM,MAAM,mDAAiF,CAAA"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { HashMap, Logger
|
|
1
|
+
import { HashMap, Logger } from "effect-app";
|
|
2
2
|
import { spanAttributes } from "../RequestContext.js";
|
|
3
|
-
import {
|
|
3
|
+
import { getRequestContextFromFiberRefs } from "./shared.js";
|
|
4
4
|
export const logfmtLogger = Logger.make((_) => {
|
|
5
5
|
let { annotations } = _;
|
|
6
|
-
const
|
|
7
|
-
const requestContext = Option.getOrUndefined(c);
|
|
6
|
+
const requestContext = getRequestContextFromFiberRefs(_.context);
|
|
8
7
|
if (requestContext && requestContext.name !== "_root_") {
|
|
9
8
|
annotations = HashMap.make(...[
|
|
10
9
|
...annotations,
|
|
@@ -15,4 +14,4 @@ export const logfmtLogger = Logger.make((_) => {
|
|
|
15
14
|
globalThis.console.log(formatted);
|
|
16
15
|
});
|
|
17
16
|
export const logFmt = Logger.replace(Logger.defaultLogger, Logger.withSpanAnnotations(logfmtLogger));
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nRm10TG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ2dlci9sb2dGbXRMb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3JELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUU1RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDckMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUNKLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDdkIsTUFBTSxjQUFjLEdBQUcsOEJBQThCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2hFLElBQUksY0FBYyxJQUFJLGNBQWMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdkQsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRztZQUM1QixHQUFHLFdBQVc7WUFDZCxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2xELENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFDaEUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDbkMsQ0FBQyxDQUNGLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBIn0=
|
package/dist/logger/shared.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Option } from "effect-app";
|
|
2
1
|
import * as FiberRefs from "effect/FiberRefs";
|
|
3
|
-
|
|
2
|
+
import { RequestContext } from "../RequestContext.js";
|
|
3
|
+
export declare function getRequestContextFromFiberRefs(fiberRefs: FiberRefs.FiberRefs): RequestContext;
|
|
4
4
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/logger/shared.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/logger/shared.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAa,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGhE,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,kBAc5E"}
|
package/dist/logger/shared.js
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Context, FiberRef, Option,
|
|
1
|
+
import { NonEmptyString255 } from "@effect-app/schema";
|
|
2
|
+
import { Context, FiberRef, Option, Tracer } from "effect-app";
|
|
3
3
|
import * as FiberRefs from "effect/FiberRefs";
|
|
4
|
-
import {
|
|
5
|
-
|
|
4
|
+
import { LocaleRef, RequestContext } from "../RequestContext.js";
|
|
5
|
+
import { storeId } from "../services/Store/Memory.js";
|
|
6
|
+
export function getRequestContextFromFiberRefs(fiberRefs) {
|
|
6
7
|
const context = FiberRefs.getOrDefault(fiberRefs, FiberRef.currentContext);
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
const span = Context.getOption(context, Tracer.ParentSpan);
|
|
9
|
+
const locale = FiberRefs.getOrDefault(fiberRefs, LocaleRef);
|
|
10
|
+
const namespace = FiberRefs.getOrDefault(fiberRefs, storeId);
|
|
11
|
+
return new RequestContext({
|
|
12
|
+
span: Option.getOrElse(span, () => ({ spanId: "bogus", sampled: true, traceId: "bogus" })),
|
|
13
|
+
name: NonEmptyString255("_"),
|
|
14
|
+
locale,
|
|
15
|
+
namespace
|
|
12
16
|
});
|
|
13
|
-
return c;
|
|
14
17
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ2dlci9zaGFyZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUM5RCxPQUFPLEtBQUssU0FBUyxNQUFNLGtCQUFrQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBRXJELE1BQU0sVUFBVSw4QkFBOEIsQ0FBQyxTQUE4QjtJQUMzRSxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDMUUsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQzFELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQzNELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQzVELE9BQU8sSUFBSSxjQUFjLENBQUM7UUFDeEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQ3BCLElBQUksRUFDSixHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUM3RDtRQUNELElBQUksRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLENBQUM7UUFDNUIsTUFBTTtRQUNOLFNBQVM7S0FDVixDQUFDLENBQUE7QUFDSixDQUFDIn0=
|
|
@@ -56,15 +56,15 @@ declare const Operations_base: (abstract new (service: {
|
|
|
56
56
|
update: (id: OperationId, progress: OperationProgress) => Effect.Effect<void, never, never>;
|
|
57
57
|
}>) & {
|
|
58
58
|
toLayer: {
|
|
59
|
-
(): Layer<Operations, never,
|
|
59
|
+
(): Layer<Operations, never, RequestFiberSet | OperationsRepo>;
|
|
60
60
|
<E_1, R_1>(eff: Effect<Omit<Operations, keyof Context.TagClassShape<any, any>>, E_1, R_1>): Layer<Operations, E_1, R_1>;
|
|
61
61
|
};
|
|
62
62
|
toLayerScoped: {
|
|
63
|
-
(): Layer<Operations, never,
|
|
63
|
+
(): Layer<Operations, never, RequestFiberSet | OperationsRepo>;
|
|
64
64
|
<E_1, R_2>(eff: Effect<Context.TagClassShape<any, any>, E_1, R_2>): Layer<Operations, E_1, Exclude<R_2, Scope.Scope>>;
|
|
65
65
|
};
|
|
66
66
|
of: (service: Context.TagClassShape<any, any>) => Operations;
|
|
67
|
-
make: Effect<Operations, never,
|
|
67
|
+
make: Effect<Operations, never, RequestFiberSet | OperationsRepo>;
|
|
68
68
|
} & Context.Tag<Operations, Operations> & {
|
|
69
69
|
cleanup: Effect<void[], never, Operations>;
|
|
70
70
|
register: (title: NonEmptyString2k) => Effect<S.StringId, never, Scope.Scope | Operations>;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { RequestContextContainer } from "@effect-app/infra/services/RequestContextContainer";
|
|
2
1
|
import { SqlClient } from "@effect/sql";
|
|
3
2
|
import { Effect, S, Tracer } from "effect-app";
|
|
4
|
-
import { NonEmptyString255 } from "effect-app/schema";
|
|
3
|
+
import type { NonEmptyString255 } from "effect-app/schema";
|
|
5
4
|
export declare const QueueId: S.brand<typeof import("@effect/schema/Schema").Number & {
|
|
6
5
|
withDefault: S.PropertySignature<":", number, never, ":", number, true, never>;
|
|
7
6
|
}, "QueueId">;
|
|
@@ -14,6 +13,6 @@ export declare function makeSQLQueue<Evt extends {
|
|
|
14
13
|
_tag: string;
|
|
15
14
|
}, EvtE, DrainEvtE>(queueName: NonEmptyString255, queueDrainName: NonEmptyString255, schema: S.Schema<Evt, EvtE>, drainSchema: S.Schema<DrainEvt, DrainEvtE>): Effect.Effect<{
|
|
16
15
|
publish: (messages_0: Evt, ...messages: Evt[]) => Effect.Effect<void, never, never>;
|
|
17
|
-
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never,
|
|
18
|
-
}, never,
|
|
16
|
+
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>>;
|
|
17
|
+
}, never, SqlClient.SqlClient>;
|
|
19
18
|
//# sourceMappingURL=SQLQueue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLQueue.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/SQLQueue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SQLQueue.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/SQLQueue.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC,OAAO,EAAE,MAAM,EAAiB,CAAC,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAI1D,eAAO,MAAM,OAAO;;aAAoC,CAAA;AACxD,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAGzC,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,iBAAiB,EAC5B,cAAc,EAAE,iBAAiB,EACjC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;;YA0G9B,MAAM,EAAE,MAAM,eACP,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,cAC/C,MAAM;+BA6DzB"}
|
|
@@ -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"}
|