@effect/platform 0.31.0 → 0.31.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/dist/cjs/Http/Middleware.js +11 -1
- package/dist/cjs/Http/Middleware.js.map +1 -1
- package/dist/cjs/internal/http/middleware.js +7 -2
- package/dist/cjs/internal/http/middleware.js.map +1 -1
- package/dist/dts/Http/Middleware.d.ts +15 -0
- package/dist/dts/Http/Middleware.d.ts.map +1 -1
- package/dist/esm/Http/Middleware.js +10 -0
- package/dist/esm/Http/Middleware.js.map +1 -1
- package/dist/esm/internal/http/middleware.js +6 -1
- package/dist/esm/internal/http/middleware.js.map +1 -1
- package/package.json +1 -1
- package/src/Http/Middleware.ts +23 -0
- package/src/internal/http/middleware.ts +28 -7
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.xForwardedHeaders = exports.withLoggerDisabled = exports.make = exports.loggerDisabled = exports.logger = void 0;
|
|
6
|
+
exports.xForwardedHeaders = exports.withTracerDisabledWhen = exports.withLoggerDisabled = exports.make = exports.loggerDisabled = exports.logger = exports.currentTracerDisabledWhen = void 0;
|
|
7
7
|
var internal = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../internal/http/middleware.js"));
|
|
8
8
|
function _getRequireWildcardCache(e) {
|
|
9
9
|
if ("function" != typeof WeakMap) return null;
|
|
@@ -50,6 +50,16 @@ const loggerDisabled = exports.loggerDisabled = internal.loggerDisabled;
|
|
|
50
50
|
* @category fiber refs
|
|
51
51
|
*/
|
|
52
52
|
const withLoggerDisabled = exports.withLoggerDisabled = internal.withLoggerDisabled;
|
|
53
|
+
/**
|
|
54
|
+
* @since 1.0.0
|
|
55
|
+
* @category fiber refs
|
|
56
|
+
*/
|
|
57
|
+
const currentTracerDisabledWhen = exports.currentTracerDisabledWhen = internal.currentTracerDisabledWhen;
|
|
58
|
+
/**
|
|
59
|
+
* @since 1.0.0
|
|
60
|
+
* @category fiber refs
|
|
61
|
+
*/
|
|
62
|
+
const withTracerDisabledWhen = exports.withTracerDisabledWhen = internal.withTracerDisabledWhen;
|
|
53
63
|
/**
|
|
54
64
|
* @since 1.0.0
|
|
55
65
|
* @category constructors
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Middleware.js","names":["internal","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","make","exports","logger","loggerDisabled","withLoggerDisabled","xForwardedHeaders"],"sources":["../../../src/Http/Middleware.ts"],"sourcesContent":[null],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"Middleware.js","names":["internal","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","make","exports","logger","loggerDisabled","withLoggerDisabled","currentTracerDisabledWhen","withTracerDisabledWhen","xForwardedHeaders"],"sources":["../../../src/Http/Middleware.ts"],"sourcesContent":[null],"mappings":";;;;;;AAMA,IAAAA,QAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAA0D,SAAAC,yBAAAC,CAAA;EAAA,yBAAAC,OAAA;EAAA,IAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAF,wBAAA,YAAAA,CAAAC,CAAA;IAAA,OAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA;EAAA,GAAAF,CAAA;AAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA;EAAA,KAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA;EAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA;IAAAK,OAAA,EAAAL;EAAA;EAAA,IAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA;EAAA,IAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA;EAAA,IAAAQ,CAAA;MAAAC,SAAA;IAAA;IAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA;EAAA,SAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA;IAAA,IAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA;IAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA;EAAA;EAAA,OAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA;AAwB1D;;;;AAIO,MAAMY,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAA+CxB,QAAQ,CAACwB,IAAI;AAE7E;;;;AAIO,MAAME,MAAM,GAAAD,OAAA,CAAAC,MAAA,GAA4D1B,QAAQ,CAAC0B,MAAM;AAE9F;;;;AAIO,MAAMC,cAAc,GAAAF,OAAA,CAAAE,cAAA,GAA+B3B,QAAQ,CAAC2B,cAAc;AAEjF;;;;AAIO,MAAMC,kBAAkB,GAAAH,OAAA,CAAAG,kBAAA,GAC7B5B,QAAQ,CAAC4B,kBAAkB;AAE7B;;;;AAIO,MAAMC,yBAAyB,GAAAJ,OAAA,CAAAI,yBAAA,GACpC7B,QAAQ,CAAC6B,yBAAyB;AAEpC;;;;AAIO,MAAMC,sBAAsB,GAAAL,OAAA,CAAAK,sBAAA,GAQ/B9B,QAAQ,CAAC8B,sBAAsB;AAEnC;;;;AAIO,MAAMC,iBAAiB,GAAAN,OAAA,CAAAM,iBAAA,GAA4D/B,QAAQ,CAAC+B,iBAAiB"}
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.xForwardedHeaders = exports.withLoggerDisabled = exports.tracer = exports.make = exports.loggerDisabled = exports.logger = void 0;
|
|
6
|
+
exports.xForwardedHeaders = exports.withTracerDisabledWhen = exports.withLoggerDisabled = exports.tracer = exports.make = exports.loggerDisabled = exports.logger = exports.currentTracerDisabledWhen = void 0;
|
|
7
7
|
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
|
8
8
|
var FiberRef = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/FiberRef"));
|
|
9
|
+
var Function = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Function"));
|
|
9
10
|
var _GlobalValue = /*#__PURE__*/require("effect/GlobalValue");
|
|
10
11
|
var Headers = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../../Http/Headers.js"));
|
|
11
12
|
var IncomingMessage = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../../Http/IncomingMessage.js"));
|
|
@@ -44,6 +45,10 @@ const loggerDisabled = exports.loggerDisabled = /*#__PURE__*/(0, _GlobalValue.gl
|
|
|
44
45
|
const withLoggerDisabled = self => Effect.zipRight(FiberRef.set(loggerDisabled, true), self);
|
|
45
46
|
/** @internal */
|
|
46
47
|
exports.withLoggerDisabled = withLoggerDisabled;
|
|
48
|
+
const currentTracerDisabledWhen = exports.currentTracerDisabledWhen = /*#__PURE__*/(0, _GlobalValue.globalValue)( /*#__PURE__*/Symbol.for("@effect/platform/Http/Middleware/tracerDisabledWhen"), () => FiberRef.unsafeMake(Function.constFalse));
|
|
49
|
+
/** @internal */
|
|
50
|
+
const withTracerDisabledWhen = exports.withTracerDisabledWhen = /*#__PURE__*/Function.dual(2, (self, pred) => Effect.locally(self, currentTracerDisabledWhen, pred));
|
|
51
|
+
/** @internal */
|
|
47
52
|
const logger = exports.logger = /*#__PURE__*/make(httpApp => {
|
|
48
53
|
let counter = 0;
|
|
49
54
|
return Effect.flatMap(ServerRequest.ServerRequest, request => Effect.withLogSpan(Effect.onExit(httpApp, exit => Effect.flatMap(FiberRef.get(loggerDisabled), disabled => {
|
|
@@ -64,7 +69,7 @@ const logger = exports.logger = /*#__PURE__*/make(httpApp => {
|
|
|
64
69
|
/** @internal */
|
|
65
70
|
const tracer = exports.tracer = /*#__PURE__*/make(httpApp => {
|
|
66
71
|
const appWithStatus = Effect.tap(httpApp, response => Effect.annotateCurrentSpan("http.status", response.status));
|
|
67
|
-
return Effect.flatMap(ServerRequest.ServerRequest, request => Effect.flatMap(request.headers["x-b3-traceid"] || request.headers["b3"] ? Effect.orElseSucceed(IncomingMessage.schemaExternalSpan(request), () => undefined) : Effect.succeed(undefined), parent => Effect.withSpan(appWithStatus, `http ${request.method}`, {
|
|
72
|
+
return Effect.flatMap(Effect.zip(ServerRequest.ServerRequest, FiberRef.get(currentTracerDisabledWhen)), ([request, disabledWhen]) => Effect.flatMap(request.headers["x-b3-traceid"] || request.headers["b3"] ? Effect.orElseSucceed(IncomingMessage.schemaExternalSpan(request), () => undefined) : Effect.succeed(undefined), parent => disabledWhen(request) ? httpApp : Effect.withSpan(appWithStatus, `http ${request.method}`, {
|
|
68
73
|
attributes: {
|
|
69
74
|
"http.method": request.method,
|
|
70
75
|
"http.url": request.url
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","names":["Effect","_interopRequireWildcard","require","FiberRef","_GlobalValue","Headers","IncomingMessage","ServerRequest","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","make","middleware","exports","loggerDisabled","globalValue","Symbol","for","unsafeMake","withLoggerDisabled","self","zipRight","logger","httpApp","counter","flatMap","request","withLogSpan","onExit","exit","disabled","unit","_tag","annotateLogs","log","cause","method","url","value","status","tracer","appWithStatus","tap","response","annotateCurrentSpan","headers","orElseSucceed","schemaExternalSpan","undefined","succeed","parent","withSpan","attributes","xForwardedHeaders","updateService","modify","remoteAddress","split","trim"],"sources":["../../../../src/internal/http/middleware.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,MAAA,gBAAAC,uBAAA,eAAAC,OAAA;AACA,IAAAC,QAAA,gBAAAF,uBAAA,eAAAC,OAAA;AACA,IAAAE,
|
|
1
|
+
{"version":3,"file":"middleware.js","names":["Effect","_interopRequireWildcard","require","FiberRef","Function","_GlobalValue","Headers","IncomingMessage","ServerRequest","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","make","middleware","exports","loggerDisabled","globalValue","Symbol","for","unsafeMake","withLoggerDisabled","self","zipRight","currentTracerDisabledWhen","constFalse","withTracerDisabledWhen","dual","pred","locally","logger","httpApp","counter","flatMap","request","withLogSpan","onExit","exit","disabled","unit","_tag","annotateLogs","log","cause","method","url","value","status","tracer","appWithStatus","tap","response","annotateCurrentSpan","zip","disabledWhen","headers","orElseSucceed","schemaExternalSpan","undefined","succeed","parent","withSpan","attributes","xForwardedHeaders","updateService","modify","remoteAddress","split","trim"],"sources":["../../../../src/internal/http/middleware.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type * as Effect from "effect/Effect";
|
|
5
5
|
import type * as FiberRef from "effect/FiberRef";
|
|
6
|
+
import type * as Predicate from "effect/Predicate";
|
|
6
7
|
import type * as App from "./App.js";
|
|
8
|
+
import type * as ServerRequest from "./ServerRequest.js";
|
|
7
9
|
/**
|
|
8
10
|
* @since 1.0.0
|
|
9
11
|
* @category models
|
|
@@ -42,6 +44,19 @@ export declare const loggerDisabled: FiberRef.FiberRef<boolean>;
|
|
|
42
44
|
* @category fiber refs
|
|
43
45
|
*/
|
|
44
46
|
export declare const withLoggerDisabled: <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>;
|
|
47
|
+
/**
|
|
48
|
+
* @since 1.0.0
|
|
49
|
+
* @category fiber refs
|
|
50
|
+
*/
|
|
51
|
+
export declare const currentTracerDisabledWhen: FiberRef.FiberRef<Predicate.Predicate<ServerRequest.ServerRequest>>;
|
|
52
|
+
/**
|
|
53
|
+
* @since 1.0.0
|
|
54
|
+
* @category fiber refs
|
|
55
|
+
*/
|
|
56
|
+
export declare const withTracerDisabledWhen: {
|
|
57
|
+
(predicate: Predicate.Predicate<ServerRequest.ServerRequest>): <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>;
|
|
58
|
+
<R, E, A>(effect: Effect.Effect<R, E, A>, predicate: Predicate.Predicate<ServerRequest.ServerRequest>): Effect.Effect<R, E, A>;
|
|
59
|
+
};
|
|
45
60
|
/**
|
|
46
61
|
* @since 1.0.0
|
|
47
62
|
* @category constructors
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Middleware.d.ts","sourceRoot":"","sources":["../../../src/Http/Middleware.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"Middleware.d.ts","sourceRoot":"","sources":["../../../src/Http/Middleware.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,KAAK,SAAS,MAAM,kBAAkB,CAAA;AAElD,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAA;AACpC,OAAO,KAAK,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAExD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CACvD;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,UAAU,CAAC;IAClC;;OAEG;IACH,UAAiB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;QAC5D,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;KAC7B;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,CAAC,KAAK,CAAiB,CAAA;AAE7E;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAmB,CAAA;AAE9F;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAA2B,CAAA;AAEjF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CACpE,CAAA;AAE7B;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,CACtE,CAAA;AAEpC;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE;IACnC,CACE,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,GAC1D,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACtE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACN,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC9B,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,GAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CACQ,CAAA;AAEnC;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAA8B,CAAA"}
|
|
@@ -19,6 +19,16 @@ export const loggerDisabled = internal.loggerDisabled;
|
|
|
19
19
|
* @category fiber refs
|
|
20
20
|
*/
|
|
21
21
|
export const withLoggerDisabled = internal.withLoggerDisabled;
|
|
22
|
+
/**
|
|
23
|
+
* @since 1.0.0
|
|
24
|
+
* @category fiber refs
|
|
25
|
+
*/
|
|
26
|
+
export const currentTracerDisabledWhen = internal.currentTracerDisabledWhen;
|
|
27
|
+
/**
|
|
28
|
+
* @since 1.0.0
|
|
29
|
+
* @category fiber refs
|
|
30
|
+
*/
|
|
31
|
+
export const withTracerDisabledWhen = internal.withTracerDisabledWhen;
|
|
22
32
|
/**
|
|
23
33
|
* @since 1.0.0
|
|
24
34
|
* @category constructors
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Middleware.js","names":["internal","make","logger","loggerDisabled","withLoggerDisabled","xForwardedHeaders"],"sources":["../../../src/Http/Middleware.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"Middleware.js","names":["internal","make","logger","loggerDisabled","withLoggerDisabled","currentTracerDisabledWhen","withTracerDisabledWhen","xForwardedHeaders"],"sources":["../../../src/Http/Middleware.ts"],"sourcesContent":[null],"mappings":"AAMA,OAAO,KAAKA,QAAQ,MAAM,gCAAgC;AAwB1D;;;;AAIA,OAAO,MAAMC,IAAI,GAA+CD,QAAQ,CAACC,IAAI;AAE7E;;;;AAIA,OAAO,MAAMC,MAAM,GAA4DF,QAAQ,CAACE,MAAM;AAE9F;;;;AAIA,OAAO,MAAMC,cAAc,GAA+BH,QAAQ,CAACG,cAAc;AAEjF;;;;AAIA,OAAO,MAAMC,kBAAkB,GAC7BJ,QAAQ,CAACI,kBAAkB;AAE7B;;;;AAIA,OAAO,MAAMC,yBAAyB,GACpCL,QAAQ,CAACK,yBAAyB;AAEpC;;;;AAIA,OAAO,MAAMC,sBAAsB,GAQ/BN,QAAQ,CAACM,sBAAsB;AAEnC;;;;AAIA,OAAO,MAAMC,iBAAiB,GAA4DP,QAAQ,CAACO,iBAAiB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import * as FiberRef from "effect/FiberRef";
|
|
3
|
+
import * as Function from "effect/Function";
|
|
3
4
|
import { globalValue } from "effect/GlobalValue";
|
|
4
5
|
import * as Headers from "../../Http/Headers.js";
|
|
5
6
|
import * as IncomingMessage from "../../Http/IncomingMessage.js";
|
|
@@ -11,6 +12,10 @@ export const loggerDisabled = /*#__PURE__*/globalValue( /*#__PURE__*/Symbol.for(
|
|
|
11
12
|
/** @internal */
|
|
12
13
|
export const withLoggerDisabled = self => Effect.zipRight(FiberRef.set(loggerDisabled, true), self);
|
|
13
14
|
/** @internal */
|
|
15
|
+
export const currentTracerDisabledWhen = /*#__PURE__*/globalValue( /*#__PURE__*/Symbol.for("@effect/platform/Http/Middleware/tracerDisabledWhen"), () => FiberRef.unsafeMake(Function.constFalse));
|
|
16
|
+
/** @internal */
|
|
17
|
+
export const withTracerDisabledWhen = /*#__PURE__*/Function.dual(2, (self, pred) => Effect.locally(self, currentTracerDisabledWhen, pred));
|
|
18
|
+
/** @internal */
|
|
14
19
|
export const logger = /*#__PURE__*/make(httpApp => {
|
|
15
20
|
let counter = 0;
|
|
16
21
|
return Effect.flatMap(ServerRequest.ServerRequest, request => Effect.withLogSpan(Effect.onExit(httpApp, exit => Effect.flatMap(FiberRef.get(loggerDisabled), disabled => {
|
|
@@ -31,7 +36,7 @@ export const logger = /*#__PURE__*/make(httpApp => {
|
|
|
31
36
|
/** @internal */
|
|
32
37
|
export const tracer = /*#__PURE__*/make(httpApp => {
|
|
33
38
|
const appWithStatus = Effect.tap(httpApp, response => Effect.annotateCurrentSpan("http.status", response.status));
|
|
34
|
-
return Effect.flatMap(ServerRequest.ServerRequest, request => Effect.flatMap(request.headers["x-b3-traceid"] || request.headers["b3"] ? Effect.orElseSucceed(IncomingMessage.schemaExternalSpan(request), () => undefined) : Effect.succeed(undefined), parent => Effect.withSpan(appWithStatus, `http ${request.method}`, {
|
|
39
|
+
return Effect.flatMap(Effect.zip(ServerRequest.ServerRequest, FiberRef.get(currentTracerDisabledWhen)), ([request, disabledWhen]) => Effect.flatMap(request.headers["x-b3-traceid"] || request.headers["b3"] ? Effect.orElseSucceed(IncomingMessage.schemaExternalSpan(request), () => undefined) : Effect.succeed(undefined), parent => disabledWhen(request) ? httpApp : Effect.withSpan(appWithStatus, `http ${request.method}`, {
|
|
35
40
|
attributes: {
|
|
36
41
|
"http.method": request.method,
|
|
37
42
|
"http.url": request.url
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","names":["Effect","FiberRef","globalValue","Headers","IncomingMessage","ServerRequest","make","middleware","loggerDisabled","Symbol","for","unsafeMake","withLoggerDisabled","self","zipRight","set","logger","httpApp","counter","flatMap","request","withLogSpan","onExit","exit","get","disabled","unit","_tag","annotateLogs","log","cause","method","url","value","status","tracer","appWithStatus","tap","response","annotateCurrentSpan","headers","orElseSucceed","schemaExternalSpan","undefined","succeed","parent","withSpan","attributes","xForwardedHeaders","updateService","modify","remoteAddress","split","trim"],"sources":["../../../../src/internal/http/middleware.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,SAASC,WAAW,QAAQ,oBAAoB;
|
|
1
|
+
{"version":3,"file":"middleware.js","names":["Effect","FiberRef","Function","globalValue","Headers","IncomingMessage","ServerRequest","make","middleware","loggerDisabled","Symbol","for","unsafeMake","withLoggerDisabled","self","zipRight","set","currentTracerDisabledWhen","constFalse","withTracerDisabledWhen","dual","pred","locally","logger","httpApp","counter","flatMap","request","withLogSpan","onExit","exit","get","disabled","unit","_tag","annotateLogs","log","cause","method","url","value","status","tracer","appWithStatus","tap","response","annotateCurrentSpan","zip","disabledWhen","headers","orElseSucceed","schemaExternalSpan","undefined","succeed","parent","withSpan","attributes","xForwardedHeaders","updateService","modify","remoteAddress","split","trim"],"sources":["../../../../src/internal/http/middleware.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Http/Middleware.ts
CHANGED
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type * as Effect from "effect/Effect"
|
|
5
5
|
import type * as FiberRef from "effect/FiberRef"
|
|
6
|
+
import type * as Predicate from "effect/Predicate"
|
|
6
7
|
import * as internal from "../internal/http/middleware.js"
|
|
7
8
|
import type * as App from "./App.js"
|
|
9
|
+
import type * as ServerRequest from "./ServerRequest.js"
|
|
8
10
|
|
|
9
11
|
/**
|
|
10
12
|
* @since 1.0.0
|
|
@@ -51,6 +53,27 @@ export const loggerDisabled: FiberRef.FiberRef<boolean> = internal.loggerDisable
|
|
|
51
53
|
export const withLoggerDisabled: <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A> =
|
|
52
54
|
internal.withLoggerDisabled
|
|
53
55
|
|
|
56
|
+
/**
|
|
57
|
+
* @since 1.0.0
|
|
58
|
+
* @category fiber refs
|
|
59
|
+
*/
|
|
60
|
+
export const currentTracerDisabledWhen: FiberRef.FiberRef<Predicate.Predicate<ServerRequest.ServerRequest>> =
|
|
61
|
+
internal.currentTracerDisabledWhen
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* @since 1.0.0
|
|
65
|
+
* @category fiber refs
|
|
66
|
+
*/
|
|
67
|
+
export const withTracerDisabledWhen: {
|
|
68
|
+
(
|
|
69
|
+
predicate: Predicate.Predicate<ServerRequest.ServerRequest>
|
|
70
|
+
): <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>
|
|
71
|
+
<R, E, A>(
|
|
72
|
+
effect: Effect.Effect<R, E, A>,
|
|
73
|
+
predicate: Predicate.Predicate<ServerRequest.ServerRequest>
|
|
74
|
+
): Effect.Effect<R, E, A>
|
|
75
|
+
} = internal.withTracerDisabledWhen
|
|
76
|
+
|
|
54
77
|
/**
|
|
55
78
|
* @since 1.0.0
|
|
56
79
|
* @category constructors
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect"
|
|
2
2
|
import * as FiberRef from "effect/FiberRef"
|
|
3
|
+
import * as Function from "effect/Function"
|
|
3
4
|
import { globalValue } from "effect/GlobalValue"
|
|
5
|
+
import type * as Predicate from "effect/Predicate"
|
|
4
6
|
import * as Headers from "../../Http/Headers.js"
|
|
5
7
|
import * as IncomingMessage from "../../Http/IncomingMessage.js"
|
|
6
8
|
import type * as Middleware from "../../Http/Middleware.js"
|
|
@@ -22,6 +24,23 @@ export const withLoggerDisabled = <R, E, A>(self: Effect.Effect<R, E, A>): Effec
|
|
|
22
24
|
self
|
|
23
25
|
)
|
|
24
26
|
|
|
27
|
+
/** @internal */
|
|
28
|
+
export const currentTracerDisabledWhen = globalValue(
|
|
29
|
+
Symbol.for("@effect/platform/Http/Middleware/tracerDisabledWhen"),
|
|
30
|
+
() => FiberRef.unsafeMake<Predicate.Predicate<ServerRequest.ServerRequest>>(Function.constFalse)
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
/** @internal */
|
|
34
|
+
export const withTracerDisabledWhen = Function.dual<
|
|
35
|
+
(
|
|
36
|
+
predicate: Predicate.Predicate<ServerRequest.ServerRequest>
|
|
37
|
+
) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
|
|
38
|
+
<R, E, A>(
|
|
39
|
+
effect: Effect.Effect<R, E, A>,
|
|
40
|
+
predicate: Predicate.Predicate<ServerRequest.ServerRequest>
|
|
41
|
+
) => Effect.Effect<R, E, A>
|
|
42
|
+
>(2, (self, pred) => Effect.locally(self, currentTracerDisabledWhen, pred))
|
|
43
|
+
|
|
25
44
|
/** @internal */
|
|
26
45
|
export const logger = make((httpApp) => {
|
|
27
46
|
let counter = 0
|
|
@@ -61,18 +80,20 @@ export const tracer = make((httpApp) => {
|
|
|
61
80
|
(response) => Effect.annotateCurrentSpan("http.status", response.status)
|
|
62
81
|
)
|
|
63
82
|
return Effect.flatMap(
|
|
64
|
-
ServerRequest.ServerRequest,
|
|
65
|
-
(request) =>
|
|
83
|
+
Effect.zip(ServerRequest.ServerRequest, FiberRef.get(currentTracerDisabledWhen)),
|
|
84
|
+
([request, disabledWhen]) =>
|
|
66
85
|
Effect.flatMap(
|
|
67
86
|
request.headers["x-b3-traceid"] || request.headers["b3"] ?
|
|
68
87
|
Effect.orElseSucceed(IncomingMessage.schemaExternalSpan(request), () => undefined) :
|
|
69
88
|
Effect.succeed(undefined),
|
|
70
89
|
(parent) =>
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
90
|
+
disabledWhen(request) ?
|
|
91
|
+
httpApp :
|
|
92
|
+
Effect.withSpan(
|
|
93
|
+
appWithStatus,
|
|
94
|
+
`http ${request.method}`,
|
|
95
|
+
{ attributes: { "http.method": request.method, "http.url": request.url }, parent }
|
|
96
|
+
)
|
|
76
97
|
)
|
|
77
98
|
)
|
|
78
99
|
})
|