@effect-app/infra 0.233.3 → 0.233.4
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 +6 -0
- package/_cjs/logger/logFmtLogger.cjs +2 -10
- package/_cjs/logger/logFmtLogger.cjs.map +1 -1
- package/_cjs/services/RequestContextContainer.cjs +2 -1
- package/_cjs/services/RequestContextContainer.cjs.map +1 -1
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +3 -9
- package/dist/services/Operations.d.ts +1 -1
- package/dist/services/QueueMaker/sbqueue.d.ts +1 -1
- package/dist/services/RequestContextContainer.d.ts +2 -1
- package/dist/services/RequestContextContainer.d.ts.map +1 -1
- package/dist/services/RequestContextContainer.js +3 -2
- package/package.json +3 -3
- package/src/logger/logFmtLogger.ts +2 -8
- package/src/services/RequestContextContainer.ts +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.logfmtLogger = exports.logFmt = void 0;
|
|
7
7
|
var _effectApp = require("effect-app");
|
|
8
|
+
var _RequestContextContainer = require("src/services/RequestContextContainer.js");
|
|
8
9
|
var _shared = require("./shared.cjs");
|
|
9
10
|
const logfmtLogger = exports.logfmtLogger = _effectApp.Logger.make(_ => {
|
|
10
11
|
let {
|
|
@@ -13,16 +14,7 @@ const logfmtLogger = exports.logfmtLogger = _effectApp.Logger.make(_ => {
|
|
|
13
14
|
const c = (0, _shared.getRequestContext)(_.context);
|
|
14
15
|
const requestContext = _effectApp.Option.getOrUndefined(c);
|
|
15
16
|
if (requestContext && requestContext.name !== "_root_") {
|
|
16
|
-
annotations = _effectApp.HashMap.make(...[...annotations, ...Object.entries(
|
|
17
|
-
"request.root.id": requestContext.rootId,
|
|
18
|
-
"request.id": requestContext.id,
|
|
19
|
-
"request.name": requestContext.name,
|
|
20
|
-
"request.namespace": requestContext.namespace,
|
|
21
|
-
"request.locale": requestContext.locale,
|
|
22
|
-
...(requestContext.userProfile?.sub ? {
|
|
23
|
-
"request.user.sub": requestContext.userProfile.sub
|
|
24
|
-
} : {})
|
|
25
|
-
})]);
|
|
17
|
+
annotations = _effectApp.HashMap.make(...[...annotations, ...Object.entries((0, _RequestContextContainer.spanAttributes)(requestContext))]);
|
|
26
18
|
}
|
|
27
19
|
const formatted = _effectApp.Logger.logfmtLogger.log({
|
|
28
20
|
..._,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logFmtLogger.cjs","names":["_effectApp","require","_shared","logfmtLogger","exports","Logger","make","_","annotations","c","getRequestContext","context","requestContext","Option","getOrUndefined","name","HashMap","Object","entries","
|
|
1
|
+
{"version":3,"file":"logFmtLogger.cjs","names":["_effectApp","require","_RequestContextContainer","_shared","logfmtLogger","exports","Logger","make","_","annotations","c","getRequestContext","context","requestContext","Option","getOrUndefined","name","HashMap","Object","entries","spanAttributes","formatted","log","globalThis","console","logFmt","replace","defaultLogger"],"sources":["../../src/logger/logFmtLogger.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEO,MAAMG,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAGE,iBAAM,CAACC,IAAI,CACpCC,CAAC,IAAI;EACJ,IAAI;IAAEC;EAAW,CAAE,GAAGD,CAAC;EACvB,MAAME,CAAC,GAAG,IAAAC,yBAAiB,EAACH,CAAC,CAACI,OAAO,CAAC;EACtC,MAAMC,cAAc,GAAGC,iBAAM,CAACC,cAAc,CAACL,CAAC,CAAC;EAC/C,IAAIG,cAAc,IAAIA,cAAc,CAACG,IAAI,KAAK,QAAQ,EAAE;IACtDP,WAAW,GAAGQ,kBAAO,CAACV,IAAI,CAAC,GAAG,CAC5B,GAAGE,WAAW,EACd,GAAGS,MAAM,CAACC,OAAO,CAAC,IAAAC,uCAAc,EAACP,cAAc,CAAC,CAAC,CAClD,CAAC;EACJ;EACA,MAAMQ,SAAS,GAAGf,iBAAM,CAACF,YAAY,CAACkB,GAAG,CAAC;IAAE,GAAGd,CAAC;IAAEC;EAAW,CAAE,CAAC;EAChEc,UAAU,CAACC,OAAO,CAACF,GAAG,CAACD,SAAS,CAAC;AACnC,CAAC,CACF;AAEM,MAAMI,MAAM,GAAApB,OAAA,CAAAoB,MAAA,GAAGnB,iBAAM,CAACoB,OAAO,CAACpB,iBAAM,CAACqB,aAAa,EAAEvB,YAAY,CAAC","ignoreList":[]}
|
|
@@ -26,7 +26,7 @@ class RequestContextContainer extends _effectApp.Context.TagId("effect-app/Reque
|
|
|
26
26
|
locale: "en"
|
|
27
27
|
})), _effectApp.FiberRef.make).pipe(_effectApp.Effect.map(ref => RequestContextContainer.of({
|
|
28
28
|
requestContext: _effectApp.FiberRef.get(ref),
|
|
29
|
-
update: f => _effectApp.Effect.tap(_effectApp.FiberRef.
|
|
29
|
+
update: f => _effectApp.Effect.tap(_effectApp.FiberRef.updateAndGet(ref, f), rc => _effectApp.Effect.annotateCurrentSpan(spanAttributes(rc))),
|
|
30
30
|
start: a => _effectApp.Effect.zipRight(_effectApp.FiberRef.set(ref, a), (0, _Memory.restoreFromRequestContext)(a))
|
|
31
31
|
})), _effectApp.Layer.scoped(this));
|
|
32
32
|
}
|
|
@@ -38,6 +38,7 @@ const RCTag = exports.RCTag = _effectApp.Context.GenericTag("@services/RCTag");
|
|
|
38
38
|
*/
|
|
39
39
|
const spanAttributes = ctx => ({
|
|
40
40
|
"request.id": ctx.id,
|
|
41
|
+
"request.root.id": ctx.rootId,
|
|
41
42
|
"request.name": ctx.name,
|
|
42
43
|
"request.locale": ctx.locale,
|
|
43
44
|
"request.namespace": ctx.namespace,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContextContainer.cjs","names":["_schema","require","_effectApp","_ids","_RequestContext","_Memory","RequestContextContainer","Context","TagId","get","Effect","flatMap","_","requestContext","getOption","contextWith","Option","isSome","map","value","some","sync","none","live","andThen","RequestContext","name","NonEmptyString255","rootId","RequestId","locale","FiberRef","make","pipe","ref","of","update","f","tap","
|
|
1
|
+
{"version":3,"file":"RequestContextContainer.cjs","names":["_schema","require","_effectApp","_ids","_RequestContext","_Memory","RequestContextContainer","Context","TagId","get","Effect","flatMap","_","requestContext","getOption","contextWith","Option","isSome","map","value","some","sync","none","live","andThen","RequestContext","name","NonEmptyString255","rootId","RequestId","locale","FiberRef","make","pipe","ref","of","update","f","tap","updateAndGet","rc","annotateCurrentSpan","spanAttributes","start","a","zipRight","set","restoreFromRequestContext","Layer","scoped","exports","RCTag","GenericTag","ctx","id","namespace","userProfile","sub","roles","undefined"],"sources":["../../src/services/RequestContextContainer.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAEA;;;;AAIM,MAAgBK,uBACpB,SAAQC,kBAAO,CAACC,KAAK,CAAC,oCAAoC,CAAC,EAIvD;EAEJ,WAAWC,GAAGA,CAAA;IACZ,OAAOC,iBAAM,CAACC,OAAO,CAACL,uBAAuB,EAAGM,CAAC,IAAKA,CAAC,CAACC,cAAc,CAAC;EACzE;EACA,WAAWC,SAASA,CAAA;IAClB,OAAOJ,iBAAM,CAACC,OAAO,CACnBD,iBAAM,CACHK,WAAW,CAAEH,CAAiB,IAAKL,kBAAO,CAACO,SAAS,CAACF,CAAC,EAAEN,uBAAuB,CAAC,CAAC,EACnFO,cAAc,IACbG,iBAAM,CAACC,MAAM,CAACJ,cAAc,CAAC,GACzBH,iBAAM,CAACQ,GAAG,CAACL,cAAc,CAACM,KAAK,CAACN,cAAc,EAAEG,iBAAM,CAACI,IAAI,CAAC,GAC5DV,iBAAM,CAACW,IAAI,CAAC,MAAML,iBAAM,CAACM,IAAI,EAAE,CAAC,CACvC;EACH;EACA,OAAgBC,IAAI,GAAGb,iBAAM,CAC1Bc,OAAO,CACNd,iBAAM,CACHW,IAAI,CAAC,MACJ,IAAII,8BAAc,CAAC;IAAEC,IAAI,EAAE,IAAAC,yBAAiB,EAAC,QAAQ,CAAC;IAAEC,MAAM,EAAE,IAAAC,cAAS,EAAC,QAAQ,CAAC;IAAEC,MAAM,EAAE;EAAI,CAAE,CAAC,CACrG,EACHC,mBAAQ,CAACC,IAAoB,CAC9B,CACAC,IAAI,CACHvB,iBAAM,CAACQ,GAAG,CAAEgB,GAAG,IACb5B,uBAAuB,CAAC6B,EAAE,CAAC;IACzBtB,cAAc,EAAEkB,mBAAQ,CAACtB,GAAG,CAACyB,GAAG,CAAC;IACjCE,MAAM,EAAGC,CAAwC,IAC/C3B,iBAAM,CAAC4B,GAAG,CAACP,mBAAQ,CAACQ,YAAY,CAACL,GAAG,EAAEG,CAAC,CAAC,EAAGG,EAAE,IAAK9B,iBAAM,CAAC+B,mBAAmB,CAACC,cAAc,CAACF,EAAE,CAAC,CAAC,CAAC;IACnGG,KAAK,EAAGC,CAAiB,IAAKlC,iBAAM,CAACmC,QAAQ,CAACd,mBAAQ,CAACe,GAAG,CAACZ,GAAG,EAAEU,CAAC,CAAC,EAAE,IAAAG,iCAAyB,EAACH,CAAC,CAAC;GACjG,CAAC,CACH,EACDI,gBAAK,CAACC,MAAM,CAAC,IAAI,CAAC,CACnB;;AAGL;AAAAC,OAAA,CAAA5C,uBAAA,GAAAA,uBAAA;AACO,MAAM6C,KAAK,GAAAD,OAAA,CAAAC,KAAA,GAAG5C,kBAAO,CAAC6C,UAAU,CAAiB,iBAAiB,CAAC;AAE1E;;;AAGO,MAAMV,cAAc,GAAIW,GAAmB,KAAM;EACtD,YAAY,EAAEA,GAAG,CAACC,EAAE;EACpB,iBAAiB,EAAED,GAAG,CAACzB,MAAM;EAC7B,cAAc,EAAEyB,GAAG,CAAC3B,IAAI;EACxB,gBAAgB,EAAE2B,GAAG,CAACvB,MAAM;EAC5B,mBAAmB,EAAEuB,GAAG,CAACE,SAAS;EAClC,IAAIF,GAAG,CAACG,WAAW,EAAEC,GAAG,GACpB;IACA,kBAAkB,EAAEJ,GAAG,CACpBG,WAAW,CACXC,GAAG;IACN,oBAAoB,EAAE,OAAO,IAAIJ,GAAG,CAC/BG,WAAW,GACZH,GAAG,CAACG,WAAW,CAACE,KAAK,GACrBC;GACL,GACC,EAAE;CACP,CAAC;AAAAT,OAAA,CAAAR,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logFmtLogger.d.ts","sourceRoot":"","sources":["../../src/logger/logFmtLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAU,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"logFmtLogger.d.ts","sourceRoot":"","sources":["../../src/logger/logFmtLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAU,MAAM,YAAY,CAAA;AAIpD,eAAO,MAAM,YAAY,8BAcxB,CAAA;AAED,eAAO,MAAM,MAAM,mDAAqD,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HashMap, Logger, Option } from "effect-app";
|
|
2
|
+
import { spanAttributes } from "src/services/RequestContextContainer.js";
|
|
2
3
|
import { getRequestContext } from "./shared.js";
|
|
3
4
|
export const logfmtLogger = Logger.make((_) => {
|
|
4
5
|
let { annotations } = _;
|
|
@@ -7,18 +8,11 @@ export const logfmtLogger = Logger.make((_) => {
|
|
|
7
8
|
if (requestContext && requestContext.name !== "_root_") {
|
|
8
9
|
annotations = HashMap.make(...[
|
|
9
10
|
...annotations,
|
|
10
|
-
...Object.entries(
|
|
11
|
-
"request.root.id": requestContext.rootId,
|
|
12
|
-
"request.id": requestContext.id,
|
|
13
|
-
"request.name": requestContext.name,
|
|
14
|
-
"request.namespace": requestContext.namespace,
|
|
15
|
-
"request.locale": requestContext.locale,
|
|
16
|
-
...(requestContext.userProfile?.sub ? { "request.user.sub": requestContext.userProfile.sub } : {})
|
|
17
|
-
})
|
|
11
|
+
...Object.entries(spanAttributes(requestContext))
|
|
18
12
|
]);
|
|
19
13
|
}
|
|
20
14
|
const formatted = Logger.logfmtLogger.log({ ..._, annotations });
|
|
21
15
|
globalThis.console.log(formatted);
|
|
22
16
|
});
|
|
23
17
|
export const logFmt = Logger.replace(Logger.defaultLogger, logfmtLogger);
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nRm10TG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ2dlci9sb2dGbXRMb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFL0MsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ3JDLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDSixJQUFJLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZCLE1BQU0sQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN0QyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9DLElBQUksY0FBYyxJQUFJLGNBQWMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdkQsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRztZQUM1QixHQUFHLFdBQVc7WUFDZCxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2xELENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFDaEUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDbkMsQ0FBQyxDQUNGLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFBIn0=
|
|
@@ -46,7 +46,7 @@ declare const Operations_base: (abstract new (service: {
|
|
|
46
46
|
all: Effect.Effect<Operation[], never, never>;
|
|
47
47
|
find: (id: StringId) => Effect.Effect<Option.Option<Operation>, never, never>;
|
|
48
48
|
update: (id: StringId, progress: OperationProgress) => Effect.Effect<void, never, never>;
|
|
49
|
-
}) => X) => X extends Effect<infer A_3, infer E_5, infer R_5> ? Effect<A_3, E_5,
|
|
49
|
+
}) => X) => X extends Effect<infer A_3, infer E_5, infer R_5> ? Effect<A_3, E_5, Operations | R_5> : Effect<X, never, Operations>;
|
|
50
50
|
};
|
|
51
51
|
export declare class Operations extends Operations_base {
|
|
52
52
|
private static readonly CleanupLive;
|
|
@@ -12,7 +12,7 @@ export declare function makeServiceBusQueue<Evt extends {
|
|
|
12
12
|
id: StringId;
|
|
13
13
|
_tag: string;
|
|
14
14
|
}, EvtE, DrainEvtE>(_queueName: string, queueDrainName: string, schema: S.Schema<Evt, EvtE>, drainSchema: S.Schema<DrainEvt, DrainEvtE>): Effect.Effect<{
|
|
15
|
-
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, import("effect/Scope").Scope |
|
|
15
|
+
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, RequestContextContainer | import("effect/Scope").Scope | import("../Store/ContextMapContainer.js").ContextMapContainer | Exclude<Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, never>, Tracer.ParentSpan>, {
|
|
16
16
|
make: Effect<import("@azure/service-bus").ServiceBusReceiver, never, import("effect/Scope").Scope>;
|
|
17
17
|
makeSession: (sessionId: string) => Effect<import("@azure/service-bus").ServiceBusReceiver, never, import("effect/Scope").Scope>;
|
|
18
18
|
}>>;
|
|
@@ -26,7 +26,7 @@ declare const RequestContextContainer_base: (abstract new (service: {
|
|
|
26
26
|
requestContext: Effect<RequestContext>;
|
|
27
27
|
update: (f: (rc: RequestContext) => RequestContext) => Effect<RequestContext>;
|
|
28
28
|
start: (f: RequestContext) => Effect<void>;
|
|
29
|
-
}) => X) => X extends Effect<infer A_3, infer E_4, infer R_4> ? Effect<A_3, E_4,
|
|
29
|
+
}) => X) => X extends Effect<infer A_3, infer E_4, infer R_4> ? Effect<A_3, E_4, RequestContextContainer | R_4> : Effect<X, never, RequestContextContainer>;
|
|
30
30
|
};
|
|
31
31
|
/**
|
|
32
32
|
* @tsplus type RequestContextContainer
|
|
@@ -46,6 +46,7 @@ export declare const spanAttributes: (ctx: RequestContext) => {
|
|
|
46
46
|
"request.user.sub"?: string & import("effect-app/ids").UserProfileIdBrand;
|
|
47
47
|
"request.user.roles"?: unknown;
|
|
48
48
|
"request.id": NonEmptyString255;
|
|
49
|
+
"request.root.id": NonEmptyString255;
|
|
49
50
|
"request.name": string & import("@effect-app/schema").NonEmptyString255Brand;
|
|
50
51
|
"request.locale": "en" | "de";
|
|
51
52
|
"request.namespace": (string & import("@effect-app/schema").NonEmptyString255Brand) | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContextContainer.d.ts","sourceRoot":"","sources":["../../src/services/RequestContextContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAY,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAErE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;;oBASjC,OAAO,cAAc,CAAC;YAC9B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,cAAc,KAAK,OAAO,cAAc,CAAC;WACtE,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,IAAI,CAAC;;oBAF1B,OAAO,cAAc,CAAC;YAC9B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,cAAc,KAAK,OAAO,cAAc,CAAC;WACtE,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,IAAI,CAAC;;oBAF1B,OAAO,cAAc,CAAC;YAC9B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,cAAc,KAAK,OAAO,cAAc,CAAC;WACtE,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,IAAI,CAAC;;;;;;;qBADzB,cAAc,KAAK,cAAc;;;;wBADlC,OAAO,cAAc,CAAC;gBAC9B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,cAAc,KAAK,OAAO,cAAc,CAAC;eACtE,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,IAAI,CAAC;;;AAR9C;;;GAGG;AACH,8BAAsB,uBACpB,SAAQ,4BAIJ;IAEJ,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAEvE;IACD,MAAM,KAAK,SAAS,+DASnB;IACD,MAAM,CAAC,QAAQ,CAAC,IAAI,qDAkBjB;CACJ;AAED,4CAA4C;AAC5C,eAAO,MAAM,KAAK,6CAAwD,CAAA;AAE1E;;GAEG;AACH,eAAO,MAAM,cAAc,QAAS,cAAc
|
|
1
|
+
{"version":3,"file":"RequestContextContainer.d.ts","sourceRoot":"","sources":["../../src/services/RequestContextContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAY,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAErE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;;oBASjC,OAAO,cAAc,CAAC;YAC9B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,cAAc,KAAK,OAAO,cAAc,CAAC;WACtE,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,IAAI,CAAC;;oBAF1B,OAAO,cAAc,CAAC;YAC9B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,cAAc,KAAK,OAAO,cAAc,CAAC;WACtE,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,IAAI,CAAC;;oBAF1B,OAAO,cAAc,CAAC;YAC9B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,cAAc,KAAK,OAAO,cAAc,CAAC;WACtE,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,IAAI,CAAC;;;;;;;qBADzB,cAAc,KAAK,cAAc;;;;wBADlC,OAAO,cAAc,CAAC;gBAC9B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,cAAc,KAAK,OAAO,cAAc,CAAC;eACtE,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,IAAI,CAAC;;;AAR9C;;;GAGG;AACH,8BAAsB,uBACpB,SAAQ,4BAIJ;IAEJ,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAEvE;IACD,MAAM,KAAK,SAAS,+DASnB;IACD,MAAM,CAAC,QAAQ,CAAC,IAAI,qDAkBjB;CACJ;AAED,4CAA4C;AAC5C,eAAO,MAAM,KAAK,6CAAwD,CAAA;AAE1E;;GAEG;AACH,eAAO,MAAM,cAAc,QAAS,cAAc;;;;;;;;CAiBhD,CAAA"}
|
|
@@ -22,7 +22,7 @@ export class RequestContextContainer extends Context.TagId("effect-app/RequestCo
|
|
|
22
22
|
.sync(() => new RequestContext({ name: NonEmptyString255("_root_"), rootId: RequestId("_root_"), locale: "en" })), (FiberRef.make))
|
|
23
23
|
.pipe(Effect.map((ref) => RequestContextContainer.of({
|
|
24
24
|
requestContext: FiberRef.get(ref),
|
|
25
|
-
update: (f) => Effect.tap(FiberRef.
|
|
25
|
+
update: (f) => Effect.tap(FiberRef.updateAndGet(ref, f), (rc) => Effect.annotateCurrentSpan(spanAttributes(rc))),
|
|
26
26
|
start: (a) => Effect.zipRight(FiberRef.set(ref, a), restoreFromRequestContext(a))
|
|
27
27
|
})), Layer.scoped(this));
|
|
28
28
|
}
|
|
@@ -33,6 +33,7 @@ export const RCTag = Context.GenericTag("@services/RCTag");
|
|
|
33
33
|
*/
|
|
34
34
|
export const spanAttributes = (ctx) => ({
|
|
35
35
|
"request.id": ctx.id,
|
|
36
|
+
"request.root.id": ctx.rootId,
|
|
36
37
|
"request.name": ctx.name,
|
|
37
38
|
"request.locale": ctx.locale,
|
|
38
39
|
"request.namespace": ctx.namespace,
|
|
@@ -48,4 +49,4 @@ export const spanAttributes = (ctx) => ({
|
|
|
48
49
|
}
|
|
49
50
|
: {})
|
|
50
51
|
});
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdENvbnRleHRDb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvUmVxdWVzdENvbnRleHRDb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUU3RDs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLHVCQUNwQixTQUFRLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsRUFJdkQ7SUFFSixNQUFNLEtBQUssR0FBRztRQUNaLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ3pFLENBQUM7SUFDRCxNQUFNLEtBQUssU0FBUztRQUNsQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQ25CLE1BQU07YUFDSCxXQUFXLENBQUMsQ0FBQyxDQUFpQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLEVBQ3BGLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FDakIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7WUFDM0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQztZQUM5RCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FDdkMsQ0FBQTtJQUNILENBQUM7SUFDRCxNQUFNLENBQVUsSUFBSSxHQUFHLE1BQU07U0FDMUIsT0FBTyxDQUNOLE1BQU07U0FDSCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQ1QsSUFBSSxjQUFjLENBQUMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDckcsRUFDSCxDQUFBLFFBQVEsQ0FBQyxJQUFvQixDQUFBLENBQzlCO1NBQ0EsSUFBSSxDQUNILE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNqQix1QkFBdUIsQ0FBQyxFQUFFLENBQUM7UUFDekIsY0FBYyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1FBQ2pDLE1BQU0sRUFBRSxDQUFDLENBQXdDLEVBQUUsRUFBRSxDQUNuRCxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkcsS0FBSyxFQUFFLENBQUMsQ0FBaUIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNsRyxDQUFDLENBQ0gsRUFDRCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUNuQixDQUFBOztBQUdMLDRDQUE0QztBQUM1QyxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBaUIsaUJBQWlCLENBQUMsQ0FBQTtBQUUxRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEQsWUFBWSxFQUFFLEdBQUcsQ0FBQyxFQUFFO0lBQ3BCLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxNQUFNO0lBQzdCLGNBQWMsRUFBRSxHQUFHLENBQUMsSUFBSTtJQUN4QixnQkFBZ0IsRUFBRSxHQUFHLENBQUMsTUFBTTtJQUM1QixtQkFBbUIsRUFBRSxHQUFHLENBQUMsU0FBUztJQUNsQyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxHQUFHO1FBQ3RCLENBQUMsQ0FBQztZQUNBLGtCQUFrQixFQUFFLEdBQUc7aUJBQ3BCLFdBQVc7aUJBQ1gsR0FBRztZQUNOLG9CQUFvQixFQUFFLE9BQU8sSUFBSSxHQUFHO2lCQUMvQixXQUFXO2dCQUNkLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUs7Z0JBQ3ZCLENBQUMsQ0FBQyxTQUFTO1NBQ2Q7UUFDRCxDQUFDLENBQUMsRUFBRSxDQUFDO0NBQ1IsQ0FBQyxDQUFBIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "0.233.
|
|
3
|
+
"version": "0.233.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
"pure-rand": "6.1.0",
|
|
20
20
|
"redlock": "^4.2.0",
|
|
21
21
|
"@effect-app/core": "0.169.0",
|
|
22
|
-
"effect-app": "0.201.3",
|
|
23
22
|
"@effect-app/infra-adapters": "0.154.0",
|
|
24
|
-
"@effect-app/schema": "0.220.3"
|
|
23
|
+
"@effect-app/schema": "0.220.3",
|
|
24
|
+
"effect-app": "0.201.3"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@babel/cli": "^7.24.1",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HashMap, Logger, Option } from "effect-app"
|
|
2
|
+
import { spanAttributes } from "src/services/RequestContextContainer.js"
|
|
2
3
|
import { getRequestContext } from "./shared.js"
|
|
3
4
|
|
|
4
5
|
export const logfmtLogger = Logger.make<unknown, void>(
|
|
@@ -9,14 +10,7 @@ export const logfmtLogger = Logger.make<unknown, void>(
|
|
|
9
10
|
if (requestContext && requestContext.name !== "_root_") {
|
|
10
11
|
annotations = HashMap.make(...[
|
|
11
12
|
...annotations,
|
|
12
|
-
...Object.entries(
|
|
13
|
-
"request.root.id": requestContext.rootId,
|
|
14
|
-
"request.id": requestContext.id,
|
|
15
|
-
"request.name": requestContext.name,
|
|
16
|
-
"request.namespace": requestContext.namespace,
|
|
17
|
-
"request.locale": requestContext.locale,
|
|
18
|
-
...(requestContext.userProfile?.sub ? { "request.user.sub": requestContext.userProfile.sub } : {})
|
|
19
|
-
})
|
|
13
|
+
...Object.entries(spanAttributes(requestContext))
|
|
20
14
|
])
|
|
21
15
|
}
|
|
22
16
|
const formatted = Logger.logfmtLogger.log({ ..._, annotations })
|
|
@@ -41,7 +41,7 @@ export abstract class RequestContextContainer
|
|
|
41
41
|
RequestContextContainer.of({
|
|
42
42
|
requestContext: FiberRef.get(ref),
|
|
43
43
|
update: (f: (a: RequestContext) => RequestContext) =>
|
|
44
|
-
Effect.tap(FiberRef.
|
|
44
|
+
Effect.tap(FiberRef.updateAndGet(ref, f), (rc) => Effect.annotateCurrentSpan(spanAttributes(rc))),
|
|
45
45
|
start: (a: RequestContext) => Effect.zipRight(FiberRef.set(ref, a), restoreFromRequestContext(a))
|
|
46
46
|
})
|
|
47
47
|
),
|
|
@@ -57,6 +57,7 @@ export const RCTag = Context.GenericTag<RequestContext>("@services/RCTag")
|
|
|
57
57
|
*/
|
|
58
58
|
export const spanAttributes = (ctx: RequestContext) => ({
|
|
59
59
|
"request.id": ctx.id,
|
|
60
|
+
"request.root.id": ctx.rootId,
|
|
60
61
|
"request.name": ctx.name,
|
|
61
62
|
"request.locale": ctx.locale,
|
|
62
63
|
"request.namespace": ctx.namespace,
|