@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../src/RequestContext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../src/RequestContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAGxC,eAAO,MAAM,MAAM,yBAAwB,CAAA;AAC3C,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AAEvC,eAAO,MAAM,SAAS,gCAAoC,CAAA;;;;;;;;;;;;;;;IAmBxD,kBAAkB;;;;2BAoBd,iBAAY;;;2BAegC,iBAAiB;;;;;;;;;;;;;;;;;AApDnE;;;GAGG;AACH,qBAAa,cAAe,SAAQ,mBAelC;IAGA,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc;;;;CAMrD;AAED,eAAO,MAAM,cAAc,QAAS,cAAc;;;;;;;CAgBhD,CAAA;AAKF,yBAAiB,cAAc,CAAC;IAC9B,UAAiB,IAAK,SAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;KAAG;CACnF"}
|
package/dist/RequestContext.js
CHANGED
|
@@ -1,56 +1,34 @@
|
|
|
1
1
|
import { ExtendedTaggedClass, NonEmptyString255 } from "@effect-app/schema";
|
|
2
|
-
import { S } from "effect-app";
|
|
3
|
-
import {
|
|
2
|
+
import { FiberRef, S } from "effect-app";
|
|
3
|
+
import { UserProfileId } from "effect-app/ids";
|
|
4
4
|
export const Locale = S.Literal("en", "de");
|
|
5
|
-
|
|
6
|
-
export class RequestContextParent extends ExtendedTaggedClass()("RequestContext", {
|
|
7
|
-
id: RequestId,
|
|
8
|
-
name: NonEmptyString255,
|
|
9
|
-
userProfile: S.optional(S.Struct({ sub: UserProfileId })),
|
|
10
|
-
locale: Locale,
|
|
11
|
-
createdAt: S.Date.withDefault
|
|
12
|
-
}) {
|
|
13
|
-
}
|
|
5
|
+
export const LocaleRef = FiberRef.unsafeMake("en");
|
|
14
6
|
/**
|
|
15
7
|
* @tsplus type RequestContext
|
|
16
8
|
* @tsplus companion RequestContext.Ops
|
|
17
9
|
*/
|
|
18
10
|
export class RequestContext extends ExtendedTaggedClass()("RequestContext", {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
// })
|
|
11
|
+
span: S.Struct({
|
|
12
|
+
traceId: S.String,
|
|
13
|
+
spanId: S.String,
|
|
14
|
+
sampled: S.Boolean
|
|
15
|
+
}),
|
|
16
|
+
name: NonEmptyString255,
|
|
17
|
+
locale: Locale,
|
|
18
|
+
sourceId: S.optional(NonEmptyString255), // TODO?
|
|
19
|
+
namespace: NonEmptyString255,
|
|
20
|
+
/** @deprecated */
|
|
21
|
+
userProfile: S.optional(S.Struct({ sub: UserProfileId })) //
|
|
31
22
|
}) {
|
|
32
23
|
// static Tag = Context.Tag<RequestContext>()
|
|
33
|
-
static inherit(parent, newSelf) {
|
|
34
|
-
return new RequestContext({
|
|
35
|
-
namespace: parent?.namespace,
|
|
36
|
-
...newSelf,
|
|
37
|
-
rootId: parent.rootId,
|
|
38
|
-
parent
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
24
|
static toMonitoring(self) {
|
|
42
25
|
return {
|
|
43
26
|
operationName: self.name,
|
|
44
|
-
locale: self.locale
|
|
45
|
-
...(self.parent
|
|
46
|
-
? { parentOperationName: self.parent.name, parentLocale: self.parent.locale }
|
|
47
|
-
: {})
|
|
27
|
+
locale: self.locale
|
|
48
28
|
};
|
|
49
29
|
}
|
|
50
30
|
}
|
|
51
31
|
export const spanAttributes = (ctx) => ({
|
|
52
|
-
"request.id": ctx.id,
|
|
53
|
-
"request.root.id": ctx.rootId,
|
|
54
32
|
"request.name": ctx.name,
|
|
55
33
|
"request.locale": ctx.locale,
|
|
56
34
|
"request.namespace": ctx.namespace,
|
|
@@ -71,4 +49,4 @@ export const spanAttributes = (ctx) => ({
|
|
|
71
49
|
//
|
|
72
50
|
// codegen:end
|
|
73
51
|
//
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdENvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUmVxdWVzdENvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDM0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTlDLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUczQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBUyxJQUFJLENBQUMsQ0FBQTtBQUUxRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sY0FBZSxTQUFRLG1CQUFtQixFQUdwRCxDQUFDLGdCQUFnQixFQUFFO0lBQ3BCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ2IsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNO1FBQ2pCLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNoQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87S0FDbkIsQ0FBQztJQUNGLElBQUksRUFBRSxpQkFBaUI7SUFDdkIsTUFBTSxFQUFFLE1BQU07SUFDZCxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVE7SUFDakQsU0FBUyxFQUFFLGlCQUFpQjtJQUM1QixrQkFBa0I7SUFDbEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtDQUM3RCxDQUFDO0lBQ0EsNkNBQTZDO0lBRTdDLE1BQU0sQ0FBQyxZQUFZLENBQWEsSUFBb0I7UUFDbEQsT0FBTztZQUNMLGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQTtJQUNILENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEQsY0FBYyxFQUFFLEdBQUcsQ0FBQyxJQUFJO0lBQ3hCLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxNQUFNO0lBQzVCLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxTQUFTO0lBQ2xDLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDNUQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsR0FBRztRQUN0QixDQUFDLENBQUM7WUFDQSxrQkFBa0IsRUFBRSxHQUFHO2lCQUNwQixXQUFXO2lCQUNYLEdBQUc7WUFDTixvQkFBb0IsRUFBRSxPQUFPLElBQUksR0FBRztpQkFDL0IsV0FBVztnQkFDZCxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLO2dCQUN2QixDQUFDLENBQUMsU0FBUztTQUNkO1FBQ0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQztDQUNSLENBQUMsQ0FBQTtBQVFGLG1CQUFtQjtBQUNuQixFQUFFO0FBQ0YsY0FBYztBQUNkLEVBQUUifQ==
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Effect } from "effect-app";
|
|
2
2
|
import { HttpServerRequest, HttpServerResponse } from "effect-app/http";
|
|
3
3
|
import { Locale } from "../../RequestContext.js";
|
|
4
|
-
import
|
|
5
|
-
export declare const RequestContextMiddleware: (defaultLocale?: Locale) => <E, R>(app: import("@effect/platform/HttpApp").Default<E, R>) => Effect.Effect<HttpServerResponse.HttpServerResponse, import("effect/Cause").NoSuchElementException | E, RequestContextContainer | HttpServerRequest.HttpServerRequest | import("../../services/Store/ContextMapContainer.js").ContextMapContainer | Exclude<R, never>>;
|
|
4
|
+
export declare const RequestContextMiddleware: (defaultLocale?: Locale) => <E, R>(app: import("@effect/platform/HttpApp").Default<E, R>) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, import("../../services/Store/ContextMapContainer.js").ContextMapContainer | HttpServerRequest.HttpServerRequest | Exclude<Exclude<R, import("effect/Tracer").ParentSpan>, never>>;
|
|
6
5
|
//# sourceMappingURL=RequestContextMiddleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContextMiddleware.d.ts","sourceRoot":"","sources":["../../../src/api/internal/RequestContextMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAkB,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAGvF,OAAO,EAAE,MAAM,EAAkB,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"RequestContextMiddleware.d.ts","sourceRoot":"","sources":["../../../src/api/internal/RequestContextMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAkB,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAGvF,OAAO,EAAE,MAAM,EAAkB,MAAM,yBAAyB,CAAA;AAGhE,eAAO,MAAM,wBAAwB,mBAAmB,MAAM,+SAmC3D,CAAA"}
|
|
@@ -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,7 @@
|
|
|
1
1
|
import { Effect } from "effect-app";
|
|
2
2
|
import { RequestContext } from "../RequestContext.js";
|
|
3
|
-
import { RequestContextContainer } from "../services/RequestContextContainer.js";
|
|
4
3
|
import { ContextMapContainer } from "../services/Store/ContextMapContainer.js";
|
|
5
|
-
export declare
|
|
6
|
-
export declare
|
|
7
|
-
|
|
8
|
-
* @tsplus fluent effect/io/Effect updateRequestContext
|
|
9
|
-
*/
|
|
10
|
-
export declare function updateRequestContext<R, E, A>(self: Effect<A, E, R>, f: (rc: RequestContext) => RequestContext): Effect.Effect<A, E, RequestContextContainer | Exclude<R, never>>;
|
|
4
|
+
export declare const getRequestContext: Effect.Effect<RequestContext, never, never>;
|
|
5
|
+
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>>;
|
|
6
|
+
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
7
|
//# sourceMappingURL=setupRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupRequest.d.ts","sourceRoot":"","sources":["../../src/api/setupRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"setupRequest.d.ts","sourceRoot":"","sources":["../../src/api/setupRequest.ts"],"names":[],"mappings":"AACA,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;AAgBH,eAAO,MAAM,8BAA8B,sBAA0B,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,8GAK9F,CAAA;AAEL,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,34 @@
|
|
|
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
|
-
|
|
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
|
+
const withRequestSpan = (name = "request") => (f) => Effect.andThen(getRequestContext, (ctx) => f.pipe(Effect.withSpan(name, { attributes: spanAttributes(ctx), captureStackTrace: false }),
|
|
20
|
+
// TODO: false
|
|
23
21
|
// request context info is picked up directly in the logger for annotations.
|
|
24
|
-
Effect.withLogSpan(
|
|
22
|
+
Effect.withLogSpan(name)));
|
|
25
23
|
const setupContextMap = Effect.andThen(ContextMapContainer, (_) => _.start).pipe(Layer.effectDiscard);
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
// memoization problem
|
|
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);
|
|
24
|
+
export const setupRequestContextFromCurrent = (name = "request") => (self) => self
|
|
25
|
+
.pipe(withRequestSpan(name), Effect.provide(setupContextMap));
|
|
38
26
|
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));
|
|
27
|
+
return Effect.gen(function* () {
|
|
28
|
+
yield* FiberRef.set(LocaleRef, requestContext.locale);
|
|
29
|
+
yield* FiberRef.set(storeId, requestContext.namespace);
|
|
30
|
+
return yield* self
|
|
31
|
+
.pipe(withRequestSpan(requestContext.name), Effect.provide(setupContextMap));
|
|
32
|
+
});
|
|
52
33
|
}
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9zZXR1cFJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFBO0FBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUVyRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNO0tBQ3BDLEdBQUcsQ0FBQztJQUNILElBQUksRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNDLE1BQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztJQUMvQixTQUFTLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7Q0FDakMsQ0FBQztLQUNELElBQUksQ0FDSCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FDekMsSUFBSSxjQUFjLENBQUM7SUFDakIsSUFBSTtJQUNKLE1BQU07SUFDTixTQUFTO0lBQ1Qsd0RBQXdEO0lBQ3hELElBQUksRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7Q0FDbEMsQ0FBQyxDQUNILENBQ0YsQ0FBQTtBQUVILE1BQU0sZUFBZSxHQUFHLENBQUMsSUFBSSxHQUFHLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBVSxDQUFrQixFQUFFLEVBQUUsQ0FDNUUsTUFBTSxDQUFDLE9BQU8sQ0FDWixpQkFBaUIsRUFDakIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNOLENBQUMsQ0FBQyxJQUFJLENBQ0osTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ3BGLGNBQWM7QUFDZCw0RUFBNEU7QUFDNUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FDekIsQ0FDSixDQUFBO0FBRUgsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUE7QUFFckcsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFVLElBQXFCLEVBQUUsRUFBRSxDQUNyRyxJQUFJO0tBQ0QsSUFBSSxDQUNILGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFDckIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FDaEMsQ0FBQTtBQUVMLE1BQU0sVUFBVSxtQkFBbUIsQ0FBVSxJQUFxQixFQUFFLGNBQThCO0lBQ2hHLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDekIsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3JELEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUV0RCxPQUFPLEtBQUssQ0FBQyxDQUFDLElBQUk7YUFDZixJQUFJLENBQ0gsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFDcEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FDaEMsQ0FBQTtJQUNMLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyJ9
|
|
@@ -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 { getRequestContext } 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 getRequestContext.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 getRequestContext.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JSZXBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lcnJvclJlcG9ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RCxPQUFPLEtBQUssTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUV6QyxNQUFNLFVBQVUsV0FBVyxDQUN6QixJQUFZO0lBRVosT0FBTyxDQUFDLEtBQXFCLEVBQUUsTUFBZ0MsRUFBRSxFQUFFLENBQ2pFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ2xCLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUM1RyxPQUFNO1FBQ1IsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksY0FBYyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUU3QyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQ2xDLEtBQUssQ0FBQyxDQUFDLFdBQVc7YUFDZixRQUFRLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxD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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
|
|
1
|
+
import { Cause, FiberId, HashMap, List, Logger } from "effect-app";
|
|
2
2
|
import { getRequestContext } 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 = getRequestContext(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbkxvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dnZXIvanNvbkxvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFL0MsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ25DLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO0lBQ3JFLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUE7SUFDdEIsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRS9CLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRTFDLE1BQU0sSUFBSSxHQUFHO1FBQ1gsU0FBUyxFQUFFLEdBQUc7UUFDZCxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7UUFDckIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ2xDLE9BQU87UUFDUCxPQUFPO1FBQ1AsS0FBSyxFQUFFLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM1RyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDdkcsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUN4QyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUNYLE9BQU8sSUFBSSxDQUFBO1lBQ2IsQ0FBQyxFQUFFLEVBQTZCLENBQUM7WUFDakMsQ0FBQyxDQUFDLFNBQVM7S0FDZCxDQUFBO0lBRUQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBQzlDLENBQUMsQ0FDRixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQSJ9
|
|
@@ -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
3
|
import { getRequestContext } 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 = getRequestContext(_.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nRm10TG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ2dlci9sb2dGbXRMb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUUvQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDckMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUNKLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDdkIsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ25ELElBQUksY0FBYyxJQUFJLGNBQWMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdkQsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRztZQUM1QixHQUFHLFdBQVc7WUFDZCxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2xELENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFDaEUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDbkMsQ0FBQyxDQUNGLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBIn0=
|
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 getRequestContext(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,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,kBAc/D"}
|
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 {
|
|
4
|
+
import { LocaleRef, RequestContext } from "../RequestContext.js";
|
|
5
|
+
import { storeId } from "../services/Store/Memory.js";
|
|
5
6
|
export function getRequestContext(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ2dlci9zaGFyZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUM5RCxPQUFPLEtBQUssU0FBUyxNQUFNLGtCQUFrQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBRXJELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxTQUE4QjtJQUM5RCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDMUUsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQzFELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQzNELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQzVELE9BQU8sSUFBSSxjQUFjLENBQUM7UUFDeEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQ3BCLElBQUksRUFDSixHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUM3RDtRQUNELElBQUksRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLENBQUM7UUFDNUIsTUFBTTtRQUNOLFNBQVM7S0FDVixDQUFDLENBQUE7QUFDSixDQUFDIn0=
|
|
@@ -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"}
|