@effect/platform 0.15.2 → 0.16.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/Http/Client.d.ts +6 -0
- package/Http/Client.d.ts.map +1 -1
- package/Http/Client.js +8 -2
- package/Http/Client.js.map +1 -1
- package/Http/IncomingMessage.d.ts +7 -1
- package/Http/IncomingMessage.d.ts.map +1 -1
- package/Http/IncomingMessage.js +44 -2
- package/Http/IncomingMessage.js.map +1 -1
- package/Http/Middleware.d.ts +5 -0
- package/Http/Middleware.d.ts.map +1 -1
- package/Http/Middleware.js +7 -1
- package/Http/Middleware.js.map +1 -1
- package/internal/http/client.d.ts.map +1 -1
- package/internal/http/client.js +12 -1
- package/internal/http/client.js.map +1 -1
- package/internal/http/middleware.js +10 -4
- package/internal/http/middleware.js.map +1 -1
- package/internal/http/router.d.ts.map +1 -1
- package/internal/http/router.js +14 -0
- package/internal/http/router.js.map +1 -1
- package/mjs/Http/Client.mjs +5 -0
- package/mjs/Http/Client.mjs.map +1 -1
- package/mjs/Http/IncomingMessage.mjs +42 -1
- package/mjs/Http/IncomingMessage.mjs.map +1 -1
- package/mjs/Http/Middleware.mjs +5 -0
- package/mjs/Http/Middleware.mjs.map +1 -1
- package/mjs/internal/http/client.mjs +10 -0
- package/mjs/internal/http/client.mjs.map +1 -1
- package/mjs/internal/http/middleware.mjs +8 -3
- package/mjs/internal/http/middleware.mjs.map +1 -1
- package/mjs/internal/http/router.mjs +14 -0
- package/mjs/internal/http/router.mjs.map +1 -1
- package/package.json +4 -4
- package/src/Http/Client.ts +8 -0
- package/src/Http/IncomingMessage.ts +61 -2
- package/src/Http/Middleware.ts +6 -0
- package/src/internal/http/client.ts +33 -1
- package/src/internal/http/middleware.ts +31 -7
- package/src/internal/http/router.ts +14 -0
package/mjs/Http/Client.mjs
CHANGED
|
@@ -94,6 +94,11 @@ export const retry = internal.retry;
|
|
|
94
94
|
* @category schema
|
|
95
95
|
*/
|
|
96
96
|
export const schemaFunction = internal.schemaFunction;
|
|
97
|
+
/**
|
|
98
|
+
* @since 1.0.0
|
|
99
|
+
* @category tracing
|
|
100
|
+
*/
|
|
101
|
+
export const withB3Propagation = internal.withB3Propagation;
|
|
97
102
|
/**
|
|
98
103
|
* @since 1.0.0
|
|
99
104
|
* @category mapping & sequencing
|
package/mjs/Http/Client.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.mjs","names":["internal","TypeId","Client","tag","layer","fetch","fetchOk","catchAll","catchTag","catchTags","filterOrElse","filterOrFail","filterStatus","filterStatusOk","make","map","mapEffect","mapRequest","mapRequestEffect","retry","schemaFunction","tap","tapRequest"],"sources":["../../src/Http/Client.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"Client.mjs","names":["internal","TypeId","Client","tag","layer","fetch","fetchOk","catchAll","catchTag","catchTags","filterOrElse","filterOrFail","filterStatus","filterStatusOk","make","map","mapEffect","mapRequest","mapRequestEffect","retry","schemaFunction","withB3Propagation","tap","tapRequest"],"sources":["../../src/Http/Client.ts"],"sourcesContent":[null],"mappings":"AAaA,OAAO,KAAKA,QAAQ,MAAM,uCAAuC;AAIjE;;;;AAIA,OAAO,MAAMC,MAAM,GAAkBD,QAAQ,CAACC,MAAM;AAkCpD;;;;AAIA,OAAO,MAAMC,MAAM,GAAgDF,QAAQ,CAACG,GAAG;AAE/E;;;;AAIA,OAAO,MAAMC,KAAK,GAA8CJ,QAAQ,CAACI,KAAK;AAE9E;;;;AAIA,OAAO,MAAMC,KAAK,GAA8CL,QAAQ,CAACK,KAAK;AAE9E;;;;AAIA,OAAO,MAAMC,OAAO,GAA8CN,QAAQ,CAACM,OAAO;AAElF;;;;AAIA,OAAO,MAAMC,QAAQ,GAGjBP,QAAQ,CAACO,QAAQ;AAErB;;;;AAIA,OAAO,MAAMC,QAAQ,GAUjBR,QAAQ,CAACQ,QAAQ;AAErB;;;;AAIA,OAAO,MAAMC,SAAS,GA4ClBT,QAAQ,CAACS,SAAS;AAEtB;;;;AAIA,OAAO,MAAMC,YAAY,GAUrBV,QAAQ,CAACU,YAAY;AAEzB;;;;AAIA,OAAO,MAAMC,YAAY,GAGrBX,QAAQ,CAACW,YAAY;AAEzB;;;;AAIA,OAAO,MAAMC,YAAY,GAQrBZ,QAAQ,CAACY,YAAY;AAEzB;;;;AAIA,OAAO,MAAMC,cAAc,GAE4Bb,QAAQ,CAACa,cAAc;AAE9E;;;;AAIA,OAAO,MAAMC,IAAI,GAIKd,QAAQ,CAACc,IAAI;AAEnC;;;;AAIA,OAAO,MAAMC,GAAG,GAGZf,QAAQ,CAACe,GAAG;AAEhB;;;;AAIA,OAAO,MAAMC,SAAS,GAGlBhB,QAAQ,CAACgB,SAAS;AAEtB;;;;AAIA,OAAO,MAAMC,UAAU,GAKnBjB,QAAQ,CAACiB,UAAU;AAEvB;;;;AAIA,OAAO,MAAMC,gBAAgB,GAQzBlB,QAAQ,CAACkB,gBAAgB;AAE7B;;;;AAIA,OAAO,MAAMC,KAAK,GAGdnB,QAAQ,CAACmB,KAAK;AAElB;;;;AAIA,OAAO,MAAMC,cAAc,GAcvBpB,QAAQ,CAACoB,cAAc;AAE3B;;;;AAIA,OAAO,MAAMC,iBAAiB,GAC5BrB,QAAQ,CAACqB,iBAAiB;AAE5B;;;;AAIA,OAAO,MAAMC,GAAG,GAGZtB,QAAQ,CAACsB,GAAG;AAEhB;;;;AAIA,OAAO,MAAMC,UAAU,GAQnBvB,QAAQ,CAACuB,UAAU"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import * as Context from "@effect/data/Context";
|
|
5
|
+
import { dual, flow } from "@effect/data/Function";
|
|
5
6
|
import * as Global from "@effect/data/GlobalValue";
|
|
6
7
|
import * as Option from "@effect/data/Option";
|
|
7
8
|
import * as Effect from "@effect/io/Effect";
|
|
8
9
|
import * as FiberRef from "@effect/io/FiberRef";
|
|
9
10
|
import * as FileSystem from "@effect/platform/FileSystem";
|
|
11
|
+
import * as ParseResult from "@effect/schema/ParseResult";
|
|
10
12
|
import * as Schema from "@effect/schema/Schema";
|
|
11
13
|
/**
|
|
12
14
|
* @since 1.0.0
|
|
@@ -37,6 +39,45 @@ export const schemaHeaders = schema => {
|
|
|
37
39
|
const parse = Schema.parse(schema);
|
|
38
40
|
return self => parse(self.headers);
|
|
39
41
|
};
|
|
42
|
+
const SpanSchema = /*#__PURE__*/Schema.struct({
|
|
43
|
+
traceId: Schema.string,
|
|
44
|
+
spanId: Schema.string,
|
|
45
|
+
parentSpanId: /*#__PURE__*/Schema.union(Schema.string, Schema.undefined)
|
|
46
|
+
});
|
|
47
|
+
/**
|
|
48
|
+
* @since 1.0.0
|
|
49
|
+
* @category schema
|
|
50
|
+
*/
|
|
51
|
+
export const schemaExternalSpan = /*#__PURE__*/flow( /*#__PURE__*/schemaHeaders( /*#__PURE__*/Schema.union( /*#__PURE__*/Schema.transformOrFail( /*#__PURE__*/Schema.struct({
|
|
52
|
+
b3: Schema.NonEmpty
|
|
53
|
+
}), SpanSchema, _ => {
|
|
54
|
+
const parts = _.b3.split("-");
|
|
55
|
+
if (parts.length >= 2) {
|
|
56
|
+
return ParseResult.success({
|
|
57
|
+
traceId: parts[0],
|
|
58
|
+
spanId: parts[1],
|
|
59
|
+
parentSpanId: parts[3]
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return ParseResult.failure(ParseResult.missing);
|
|
63
|
+
}, _ => ParseResult.success("")), /*#__PURE__*/Schema.transform( /*#__PURE__*/Schema.struct({
|
|
64
|
+
"x-b3-traceid": Schema.NonEmpty,
|
|
65
|
+
"x-b3-spanid": Schema.NonEmpty,
|
|
66
|
+
"x-b3-parentspanid": /*#__PURE__*/Schema.optional(Schema.NonEmpty)
|
|
67
|
+
}), SpanSchema, _ => ({
|
|
68
|
+
traceId: _["x-b3-traceid"],
|
|
69
|
+
spanId: _["x-b3-spanid"],
|
|
70
|
+
parentSpanId: _["x-b3-parentspanid"]
|
|
71
|
+
}), _ => ({
|
|
72
|
+
"x-b3-traceid": _.traceId,
|
|
73
|
+
"x-b3-spanid": _.spanId,
|
|
74
|
+
"x-b3-parentspanid": _.parentSpanId
|
|
75
|
+
})))), /*#__PURE__*/Effect.map(_ => ({
|
|
76
|
+
_tag: "ExternalSpan",
|
|
77
|
+
traceId: _.traceId,
|
|
78
|
+
spanId: _.spanId,
|
|
79
|
+
context: Context.empty()
|
|
80
|
+
})));
|
|
40
81
|
/**
|
|
41
82
|
* @since 1.0.0
|
|
42
83
|
* @category fiber refs
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IncomingMessage.mjs","names":["dual","Global","Option","Effect","FiberRef","FileSystem","Schema","TypeId","Symbol","for","schemaBodyJson","schema","parse","self","flatMap","json","schemaBodyUrlParams","urlParamsBody","_","Object","fromEntries","schemaHeaders","headers","maxBodySize","globalValue","unsafeMake","none","withMaxBodySize","effect","size","locally","
|
|
1
|
+
{"version":3,"file":"IncomingMessage.mjs","names":["Context","dual","flow","Global","Option","Effect","FiberRef","FileSystem","ParseResult","Schema","TypeId","Symbol","for","schemaBodyJson","schema","parse","self","flatMap","json","schemaBodyUrlParams","urlParamsBody","_","Object","fromEntries","schemaHeaders","headers","SpanSchema","struct","traceId","string","spanId","parentSpanId","union","undefined","schemaExternalSpan","transformOrFail","b3","NonEmpty","parts","split","length","success","failure","missing","transform","optional","map","_tag","context","empty","maxBodySize","globalValue","unsafeMake","none","withMaxBodySize","effect","size","locally","Size"],"sources":["../../src/Http/IncomingMessage.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/mjs/Http/Middleware.mjs
CHANGED
|
@@ -4,6 +4,11 @@ import * as internal from "@effect/platform/internal/http/middleware";
|
|
|
4
4
|
* @category constructors
|
|
5
5
|
*/
|
|
6
6
|
export const make = internal.make;
|
|
7
|
+
/**
|
|
8
|
+
* @since 1.0.0
|
|
9
|
+
* @category constructors
|
|
10
|
+
*/
|
|
11
|
+
export const b3Response = internal.b3Response;
|
|
7
12
|
/**
|
|
8
13
|
* @since 1.0.0
|
|
9
14
|
* @category constructors
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Middleware.mjs","names":["internal","make","logger","tracer","loggerTracer","xForwardedHeaders"],"sources":["../../src/Http/Middleware.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,QAAQ,MAAM,2CAA2C;AAsBrE;;;;AAIA,OAAO,MAAMC,IAAI,GAA+CD,QAAQ,CAACC,IAAI;AAE7E;;;;AAIA,OAAO,MAAMC,
|
|
1
|
+
{"version":3,"file":"Middleware.mjs","names":["internal","make","b3Response","logger","tracer","loggerTracer","xForwardedHeaders"],"sources":["../../src/Http/Middleware.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,QAAQ,MAAM,2CAA2C;AAsBrE;;;;AAIA,OAAO,MAAMC,IAAI,GAA+CD,QAAQ,CAACC,IAAI;AAE7E;;;;AAIA,OAAO,MAAMC,UAAU,GAA4DF,QAAQ,CAACE,UAAU;AAEtG;;;;AAIA,OAAO,MAAMC,MAAM,GAA4DH,QAAQ,CAACG,MAAM;AAE9F;;;;AAIA,OAAO,MAAMC,MAAM,GAA4DJ,QAAQ,CAACI,MAAM;AAE9F;;;;AAIA,OAAO,MAAMC,YAAY,GAA4DL,QAAQ,CAACK,YAAY;AAE1G;;;;AAIA,OAAO,MAAMC,iBAAiB,GAA4DN,QAAQ,CAACM,iBAAiB"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as Context from "@effect/data/Context";
|
|
2
2
|
import { dual } from "@effect/data/Function";
|
|
3
|
+
import * as Option from "@effect/data/Option";
|
|
3
4
|
import { pipeArguments } from "@effect/data/Pipeable";
|
|
4
5
|
import * as Effect from "@effect/io/Effect";
|
|
5
6
|
import * as Layer from "@effect/io/Layer";
|
|
7
|
+
import * as IncomingMessage from "@effect/platform/Http/IncomingMessage";
|
|
6
8
|
import * as Method from "@effect/platform/Http/Method";
|
|
7
9
|
import * as UrlParams from "@effect/platform/Http/UrlParams";
|
|
8
10
|
import * as internalBody from "@effect/platform/internal/http/body";
|
|
@@ -98,6 +100,14 @@ export const mapRequest = /*#__PURE__*/dual(2, (self, f) => setProto(request =>
|
|
|
98
100
|
/** @internal */
|
|
99
101
|
export const mapRequestEffect = /*#__PURE__*/dual(2, (self, f) => setProto(request => Effect.flatMap(f(request), self)));
|
|
100
102
|
/** @internal */
|
|
103
|
+
export const withB3Propagation = self => setProto(req => Effect.tap(res => Effect.ignore(Effect.flatMap(IncomingMessage.schemaExternalSpan(res), Effect.withParentSpanScoped)))(Effect.flatMap(self)(Effect.map(Effect.currentSpan, Option.match({
|
|
104
|
+
onNone: () => req,
|
|
105
|
+
onSome: span => {
|
|
106
|
+
const parentId = span.parent._tag === "Some" ? `-${span.parent.value.spanId}` : "";
|
|
107
|
+
return internalRequest.setHeader(req, "b3", `${span.traceId}-${span.spanId}-1${parentId}`);
|
|
108
|
+
}
|
|
109
|
+
})))));
|
|
110
|
+
/** @internal */
|
|
101
111
|
export const retry = /*#__PURE__*/dual(2, (self, policy) => setProto(request => Effect.retry(self(request), policy)));
|
|
102
112
|
/** @internal */
|
|
103
113
|
export const schemaFunction = /*#__PURE__*/dual(2, (self, schema) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.mjs","names":["Context","dual","pipeArguments","Effect","Layer","Method","UrlParams","internalBody","internalError","internalRequest","internalResponse","Schema","Stream","TypeId","Symbol","for","tag","Tag","clientProto","pipe","arguments","setProto","f","Object","setPrototypeOf","make","fetch","options","request","flatMap","makeUrl","url","urlParams","_","requestError","reason","error","suspend","headers","Headers","send","body","map","tryPromise","try","signal","globalThis","method","catch","fromWeb","hasBody","convertBody","undefined","_tag","formData","toReadableStream","stream","fetchOk","filterStatusOk","layer","succeed","catchTag","self","catchTags","cases","catchAll","filterOrElse","orElse","filterOrFail","orFailWith","filterStatus","response","status","responseError","mapEffect","mapRequest","mapRequestEffect","retry","policy","schemaFunction","schema","encode","a","tryMap","TextEncoder","JSON","stringify","setBody","uint8Array","
|
|
1
|
+
{"version":3,"file":"client.mjs","names":["Context","dual","Option","pipeArguments","Effect","Layer","IncomingMessage","Method","UrlParams","internalBody","internalError","internalRequest","internalResponse","Schema","Stream","TypeId","Symbol","for","tag","Tag","clientProto","pipe","arguments","setProto","f","Object","setPrototypeOf","make","fetch","options","request","flatMap","makeUrl","url","urlParams","_","requestError","reason","error","suspend","headers","Headers","send","body","map","tryPromise","try","signal","globalThis","method","catch","fromWeb","hasBody","convertBody","undefined","_tag","formData","toReadableStream","stream","fetchOk","filterStatusOk","layer","succeed","catchTag","self","catchTags","cases","catchAll","filterOrElse","orElse","filterOrFail","orFailWith","filterStatus","response","status","responseError","mapEffect","mapRequest","mapRequestEffect","withB3Propagation","req","tap","res","ignore","schemaExternalSpan","withParentSpanScoped","currentSpan","match","onNone","onSome","span","parentId","parent","value","spanId","setHeader","traceId","retry","policy","schemaFunction","schema","encode","a","tryMap","TextEncoder","JSON","stringify","setBody","uint8Array","tapRequest","zipRight"],"sources":["../../../src/internal/http/client.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { flow } from "@effect/data/Function";
|
|
2
2
|
import * as Effect from "@effect/io/Effect";
|
|
3
3
|
import * as Headers from "@effect/platform/Http/Headers";
|
|
4
|
+
import * as IncomingMessage from "@effect/platform/Http/IncomingMessage";
|
|
4
5
|
import * as ServerRequest from "@effect/platform/Http/ServerRequest";
|
|
6
|
+
import * as ServerResponse from "@effect/platform/Http/ServerResponse";
|
|
5
7
|
/** @internal */
|
|
6
8
|
export const make = middleware => middleware;
|
|
7
9
|
/** @internal */
|
|
@@ -18,12 +20,15 @@ export const logger = /*#__PURE__*/make(httpApp => {
|
|
|
18
20
|
})), `http.span.${++counter}`));
|
|
19
21
|
});
|
|
20
22
|
/** @internal */
|
|
21
|
-
export const tracer = /*#__PURE__*/make(httpApp => Effect.flatMap(ServerRequest.ServerRequest, request => Effect.withSpan(Effect.tap(httpApp, response => Effect.annotateCurrentSpan("http.status", response.status)), `http ${request.method}`, {
|
|
23
|
+
export const tracer = /*#__PURE__*/make(httpApp => Effect.flatMap(ServerRequest.ServerRequest, request => Effect.flatMap(Effect.orElseSucceed(IncomingMessage.schemaExternalSpan(request), () => undefined), parent => Effect.withSpan(Effect.tap(httpApp, response => Effect.annotateCurrentSpan("http.status", response.status)), `http ${request.method}`, {
|
|
22
24
|
attributes: {
|
|
23
25
|
"http.method": request.method,
|
|
24
26
|
"http.url": request.url
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
+
},
|
|
28
|
+
parent
|
|
29
|
+
}))));
|
|
30
|
+
/** @internal */
|
|
31
|
+
export const b3Response = /*#__PURE__*/make(httpApp => Effect.flatMap(Effect.currentSpan, span => span._tag === "Some" ? Effect.map(httpApp, res => ServerResponse.setHeader(res, "b3", `${span.value.traceId}-${span.value.spanId}-1${span.value.parent._tag === "Some" ? `-${span.value.parent.value.spanId}` : ""}`)) : httpApp));
|
|
27
32
|
/** @internal */
|
|
28
33
|
export const xForwardedHeaders = /*#__PURE__*/make(httpApp => Effect.updateService(httpApp, ServerRequest.ServerRequest, request => request.headers["x-forwarded-host"] ? request.replaceHeaders(Headers.set(request.headers, "host", request.headers["x-forwarded-host"])) : request));
|
|
29
34
|
/** @internal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.mjs","names":["flow","Effect","Headers","ServerRequest","make","middleware","logger","httpApp","counter","flatMap","request","withLogSpan","onExit","exit","_tag","annotateLogs","log","cause","method","url","value","status","tracer","withSpan","tap","response","annotateCurrentSpan","attributes","xForwardedHeaders","updateService","headers","replaceHeaders","set","loggerTracer"],"sources":["../../../src/internal/http/middleware.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,IAAI,QAAQ,uBAAuB;AAC5C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,OAAO,MAAM,+BAA+B;
|
|
1
|
+
{"version":3,"file":"middleware.mjs","names":["flow","Effect","Headers","IncomingMessage","ServerRequest","ServerResponse","make","middleware","logger","httpApp","counter","flatMap","request","withLogSpan","onExit","exit","_tag","annotateLogs","log","cause","method","url","value","status","tracer","orElseSucceed","schemaExternalSpan","undefined","parent","withSpan","tap","response","annotateCurrentSpan","attributes","b3Response","currentSpan","span","map","res","setHeader","traceId","spanId","xForwardedHeaders","updateService","headers","replaceHeaders","set","loggerTracer"],"sources":["../../../src/internal/http/middleware.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import * as Context from "@effect/data/Context";
|
|
|
3
3
|
import * as Equal from "@effect/data/Equal";
|
|
4
4
|
import { dual } from "@effect/data/Function";
|
|
5
5
|
import * as Hash from "@effect/data/Hash";
|
|
6
|
+
import * as Inspectable from "@effect/data/Inspectable";
|
|
6
7
|
import * as Option from "@effect/data/Option";
|
|
7
8
|
import { pipeArguments } from "@effect/data/Pipeable";
|
|
8
9
|
import * as Effect from "@effect/io/Effect";
|
|
@@ -60,6 +61,19 @@ class RouterImpl {
|
|
|
60
61
|
[Hash.symbol]() {
|
|
61
62
|
return Hash.random(this);
|
|
62
63
|
}
|
|
64
|
+
toJSON() {
|
|
65
|
+
return {
|
|
66
|
+
_id: "Router",
|
|
67
|
+
routes: this.routes.toJSON(),
|
|
68
|
+
mounts: this.mounts.toJSON()
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
toString() {
|
|
72
|
+
return Inspectable.toString(this);
|
|
73
|
+
}
|
|
74
|
+
[Inspectable.NodeInspectSymbol]() {
|
|
75
|
+
return this.toJSON();
|
|
76
|
+
}
|
|
63
77
|
}
|
|
64
78
|
const toHttpApp = self => {
|
|
65
79
|
const router = FindMyWay();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.mjs","names":["Chunk","Context","Equal","dual","Hash","Option","pipeArguments","Effect","Error","ServerRequest","Schema","Channel","Sink","Stream","FindMyWay","TypeId","Symbol","for","RouteTypeId","RouteContextTypeId","RouteContext","Tag","params","map","_","searchParams","schemaParams","schema","parse","flatMap","RouterImpl","constructor","routes","mounts","_tag","EffectTypeId","undefined","StreamTypeId","SinkTypeId","ChannelTypeId","pipe","arguments","commit","httpApp","toHttpApp","symbol","that","random","self","router","toReadonlyArray","mountsLen","length","forEach","route","fn","method","all","path","on","request","i","app","url","startsWith","provideService","sliceRequestUrl","result","find","fail","RouteNotFound","handler","prefix","value","mapInputContext","context","add","RouteContextImpl","prefexLen","setUrl","slice","RouteImpl","none","empty","fromIterable","makeRoute","concat","appendAll","removeTrailingSlash","endsWith","prefixAll","orElse","some","mount","mountApp","append","get","post","put","patch","del","head","options","use","f","catchAll","catchAllCause","catchTag","k","catchTags","cases","tag","service","provideServiceEffect","effect"],"sources":["../../../src/internal/http/router.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.mjs","names":["Chunk","Context","Equal","dual","Hash","Inspectable","Option","pipeArguments","Effect","Error","ServerRequest","Schema","Channel","Sink","Stream","FindMyWay","TypeId","Symbol","for","RouteTypeId","RouteContextTypeId","RouteContext","Tag","params","map","_","searchParams","schemaParams","schema","parse","flatMap","RouterImpl","constructor","routes","mounts","_tag","EffectTypeId","undefined","StreamTypeId","SinkTypeId","ChannelTypeId","pipe","arguments","commit","httpApp","toHttpApp","symbol","that","random","toJSON","_id","toString","NodeInspectSymbol","self","router","toReadonlyArray","mountsLen","length","forEach","route","fn","method","all","path","on","request","i","app","url","startsWith","provideService","sliceRequestUrl","result","find","fail","RouteNotFound","handler","prefix","value","mapInputContext","context","add","RouteContextImpl","prefexLen","setUrl","slice","RouteImpl","none","empty","fromIterable","makeRoute","concat","appendAll","removeTrailingSlash","endsWith","prefixAll","orElse","some","mount","mountApp","append","get","post","put","patch","del","head","options","use","f","catchAll","catchAllCause","catchTag","k","catchTags","cases","tag","service","provideServiceEffect","effect"],"sources":["../../../src/internal/http/router.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/platform",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "Unified interfaces for common platform-specific services",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
"path-browserify": "^1.0.1"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
|
-
"@effect/data": "^0.18.
|
|
33
|
-
"@effect/io": "^0.40.
|
|
34
|
-
"@effect/schema": "^0.
|
|
32
|
+
"@effect/data": "^0.18.5",
|
|
33
|
+
"@effect/io": "^0.40.1",
|
|
34
|
+
"@effect/schema": "^0.36.1",
|
|
35
35
|
"@effect/stream": "^0.36.0"
|
|
36
36
|
}
|
|
37
37
|
}
|
package/src/Http/Client.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type * as Predicate from "@effect/data/Predicate"
|
|
|
7
7
|
import type * as Effect from "@effect/io/Effect"
|
|
8
8
|
import type * as Layer from "@effect/io/Layer"
|
|
9
9
|
import type * as Schedule from "@effect/io/Schedule"
|
|
10
|
+
import type * as Scope from "@effect/io/Scope"
|
|
10
11
|
import type * as Error from "@effect/platform/Http/ClientError"
|
|
11
12
|
import type * as ClientRequest from "@effect/platform/Http/ClientRequest"
|
|
12
13
|
import type * as ClientResponse from "@effect/platform/Http/ClientResponse"
|
|
@@ -280,6 +281,13 @@ export const schemaFunction: {
|
|
|
280
281
|
) => (a: SA) => Effect.Effect<R, Error.RequestError | ParseResult.ParseError | E, A>
|
|
281
282
|
} = internal.schemaFunction
|
|
282
283
|
|
|
284
|
+
/**
|
|
285
|
+
* @since 1.0.0
|
|
286
|
+
* @category tracing
|
|
287
|
+
*/
|
|
288
|
+
export const withB3Propagation: <R, E>(self: Client.WithResponse<R, E>) => Client.WithResponse<R | Scope.Scope, E> =
|
|
289
|
+
internal.withB3Propagation
|
|
290
|
+
|
|
283
291
|
/**
|
|
284
292
|
* @since 1.0.0
|
|
285
293
|
* @category mapping & sequencing
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import * as Context from "@effect/data/Context"
|
|
5
|
+
import { dual, flow } from "@effect/data/Function"
|
|
5
6
|
import * as Global from "@effect/data/GlobalValue"
|
|
6
7
|
import * as Option from "@effect/data/Option"
|
|
7
8
|
import * as Effect from "@effect/io/Effect"
|
|
8
9
|
import * as FiberRef from "@effect/io/FiberRef"
|
|
10
|
+
import type { ExternalSpan } from "@effect/io/Tracer"
|
|
9
11
|
import * as FileSystem from "@effect/platform/FileSystem"
|
|
10
12
|
import type * as Headers from "@effect/platform/Http/Headers"
|
|
11
13
|
import type * as UrlParams from "@effect/platform/Http/UrlParams"
|
|
12
|
-
import
|
|
14
|
+
import * as ParseResult from "@effect/schema/ParseResult"
|
|
13
15
|
import * as Schema from "@effect/schema/Schema"
|
|
14
16
|
import type * as Stream from "@effect/stream/Stream"
|
|
15
17
|
|
|
@@ -68,6 +70,63 @@ export const schemaHeaders = <I extends Readonly<Record<string, string>>, A>(sch
|
|
|
68
70
|
return <E>(self: IncomingMessage<E>): Effect.Effect<never, ParseResult.ParseError, A> => parse(self.headers)
|
|
69
71
|
}
|
|
70
72
|
|
|
73
|
+
const SpanSchema = Schema.struct({
|
|
74
|
+
traceId: Schema.string,
|
|
75
|
+
spanId: Schema.string,
|
|
76
|
+
parentSpanId: Schema.union(Schema.string, Schema.undefined)
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* @since 1.0.0
|
|
81
|
+
* @category schema
|
|
82
|
+
*/
|
|
83
|
+
export const schemaExternalSpan = flow(
|
|
84
|
+
schemaHeaders(Schema.union(
|
|
85
|
+
Schema.transformOrFail(
|
|
86
|
+
Schema.struct({
|
|
87
|
+
b3: Schema.NonEmpty
|
|
88
|
+
}),
|
|
89
|
+
SpanSchema,
|
|
90
|
+
(_) => {
|
|
91
|
+
const parts = _.b3.split("-")
|
|
92
|
+
if (parts.length >= 2) {
|
|
93
|
+
return ParseResult.success({
|
|
94
|
+
traceId: parts[0],
|
|
95
|
+
spanId: parts[1],
|
|
96
|
+
parentSpanId: parts[3]
|
|
97
|
+
})
|
|
98
|
+
}
|
|
99
|
+
return ParseResult.failure(ParseResult.missing)
|
|
100
|
+
},
|
|
101
|
+
(_) => ParseResult.success("")
|
|
102
|
+
),
|
|
103
|
+
Schema.transform(
|
|
104
|
+
Schema.struct({
|
|
105
|
+
"x-b3-traceid": Schema.NonEmpty,
|
|
106
|
+
"x-b3-spanid": Schema.NonEmpty,
|
|
107
|
+
"x-b3-parentspanid": Schema.optional(Schema.NonEmpty)
|
|
108
|
+
}),
|
|
109
|
+
SpanSchema,
|
|
110
|
+
(_) => ({
|
|
111
|
+
traceId: _["x-b3-traceid"],
|
|
112
|
+
spanId: _["x-b3-spanid"],
|
|
113
|
+
parentSpanId: _["x-b3-parentspanid"]
|
|
114
|
+
}),
|
|
115
|
+
(_) => ({
|
|
116
|
+
"x-b3-traceid": _.traceId,
|
|
117
|
+
"x-b3-spanid": _.spanId,
|
|
118
|
+
"x-b3-parentspanid": _.parentSpanId
|
|
119
|
+
})
|
|
120
|
+
)
|
|
121
|
+
)),
|
|
122
|
+
Effect.map((_): ExternalSpan => ({
|
|
123
|
+
_tag: "ExternalSpan",
|
|
124
|
+
traceId: _.traceId,
|
|
125
|
+
spanId: _.spanId,
|
|
126
|
+
context: Context.empty()
|
|
127
|
+
}))
|
|
128
|
+
)
|
|
129
|
+
|
|
71
130
|
/**
|
|
72
131
|
* @since 1.0.0
|
|
73
132
|
* @category fiber refs
|
package/src/Http/Middleware.ts
CHANGED
|
@@ -30,6 +30,12 @@ export declare namespace Middleware {
|
|
|
30
30
|
*/
|
|
31
31
|
export const make: <M extends Middleware>(middleware: M) => M = internal.make
|
|
32
32
|
|
|
33
|
+
/**
|
|
34
|
+
* @since 1.0.0
|
|
35
|
+
* @category constructors
|
|
36
|
+
*/
|
|
37
|
+
export const b3Response: <R, E>(httpApp: App.Default<R, E>) => App.Default<R, E> = internal.b3Response
|
|
38
|
+
|
|
33
39
|
/**
|
|
34
40
|
* @since 1.0.0
|
|
35
41
|
* @category constructors
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import * as Context from "@effect/data/Context"
|
|
2
|
-
import { dual } from "@effect/data/Function"
|
|
2
|
+
import { dual, pipe } from "@effect/data/Function"
|
|
3
|
+
import * as Option from "@effect/data/Option"
|
|
3
4
|
import { pipeArguments } from "@effect/data/Pipeable"
|
|
4
5
|
import type * as Predicate from "@effect/data/Predicate"
|
|
5
6
|
import * as Effect from "@effect/io/Effect"
|
|
6
7
|
import * as Layer from "@effect/io/Layer"
|
|
7
8
|
import type * as Schedule from "@effect/io/Schedule"
|
|
9
|
+
import type * as Scope from "@effect/io/Scope"
|
|
8
10
|
import type * as Body from "@effect/platform/Http/Body"
|
|
9
11
|
import type * as Client from "@effect/platform/Http/Client"
|
|
10
12
|
import type * as Error from "@effect/platform/Http/ClientError"
|
|
11
13
|
import type * as ClientRequest from "@effect/platform/Http/ClientRequest"
|
|
12
14
|
import type * as ClientResponse from "@effect/platform/Http/ClientResponse"
|
|
15
|
+
import * as IncomingMessage from "@effect/platform/Http/IncomingMessage"
|
|
13
16
|
import * as Method from "@effect/platform/Http/Method"
|
|
14
17
|
import * as UrlParams from "@effect/platform/Http/UrlParams"
|
|
15
18
|
import * as internalBody from "@effect/platform/internal/http/body"
|
|
@@ -359,6 +362,35 @@ export const mapRequestEffect = dual<
|
|
|
359
362
|
) => Client.Client<R | R2, E | E2, A>
|
|
360
363
|
>(2, (self, f) => setProto((request) => Effect.flatMap(f(request), self)))
|
|
361
364
|
|
|
365
|
+
/** @internal */
|
|
366
|
+
export const withB3Propagation = <R, E>(
|
|
367
|
+
self: Client.Client.WithResponse<R, E>
|
|
368
|
+
): Client.Client.WithResponse<R | Scope.Scope, E> =>
|
|
369
|
+
setProto((req) =>
|
|
370
|
+
pipe(
|
|
371
|
+
Effect.map(
|
|
372
|
+
Effect.currentSpan,
|
|
373
|
+
Option.match({
|
|
374
|
+
onNone: () => req,
|
|
375
|
+
onSome: (span) => {
|
|
376
|
+
const parentId = span.parent._tag === "Some" ? `-${span.parent.value.spanId}` : ""
|
|
377
|
+
return internalRequest.setHeader(
|
|
378
|
+
req,
|
|
379
|
+
"b3",
|
|
380
|
+
`${span.traceId}-${span.spanId}-1${parentId}`
|
|
381
|
+
)
|
|
382
|
+
}
|
|
383
|
+
})
|
|
384
|
+
),
|
|
385
|
+
Effect.flatMap(self),
|
|
386
|
+
Effect.tap((res) =>
|
|
387
|
+
Effect.ignore(
|
|
388
|
+
Effect.flatMap(IncomingMessage.schemaExternalSpan(res), Effect.withParentSpanScoped)
|
|
389
|
+
)
|
|
390
|
+
)
|
|
391
|
+
)
|
|
392
|
+
)
|
|
393
|
+
|
|
362
394
|
/** @internal */
|
|
363
395
|
export const retry: {
|
|
364
396
|
<R1, E extends E0, E0, B>(policy: Schedule.Schedule<R1, E0, B>): <R, A>(
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { flow } from "@effect/data/Function"
|
|
2
2
|
import * as Effect from "@effect/io/Effect"
|
|
3
3
|
import * as Headers from "@effect/platform/Http/Headers"
|
|
4
|
+
import * as IncomingMessage from "@effect/platform/Http/IncomingMessage"
|
|
4
5
|
import type * as Middleware from "@effect/platform/Http/Middleware"
|
|
5
6
|
import * as ServerRequest from "@effect/platform/Http/ServerRequest"
|
|
7
|
+
import * as ServerResponse from "@effect/platform/Http/ServerResponse"
|
|
6
8
|
|
|
7
9
|
/** @internal */
|
|
8
10
|
export const make = <M extends Middleware.Middleware>(middleware: M): M => middleware
|
|
@@ -36,17 +38,39 @@ export const tracer = make((httpApp) =>
|
|
|
36
38
|
Effect.flatMap(
|
|
37
39
|
ServerRequest.ServerRequest,
|
|
38
40
|
(request) =>
|
|
39
|
-
Effect.
|
|
40
|
-
Effect.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
Effect.flatMap(
|
|
42
|
+
Effect.orElseSucceed(IncomingMessage.schemaExternalSpan(request), () => undefined),
|
|
43
|
+
(parent) =>
|
|
44
|
+
Effect.withSpan(
|
|
45
|
+
Effect.tap(
|
|
46
|
+
httpApp,
|
|
47
|
+
(response) => Effect.annotateCurrentSpan("http.status", response.status)
|
|
48
|
+
),
|
|
49
|
+
`http ${request.method}`,
|
|
50
|
+
{ attributes: { "http.method": request.method, "http.url": request.url }, parent }
|
|
51
|
+
)
|
|
46
52
|
)
|
|
47
53
|
)
|
|
48
54
|
)
|
|
49
55
|
|
|
56
|
+
/** @internal */
|
|
57
|
+
export const b3Response = make((httpApp) =>
|
|
58
|
+
Effect.flatMap(
|
|
59
|
+
Effect.currentSpan,
|
|
60
|
+
(span) =>
|
|
61
|
+
span._tag === "Some"
|
|
62
|
+
? Effect.map(httpApp, (res) =>
|
|
63
|
+
ServerResponse.setHeader(
|
|
64
|
+
res,
|
|
65
|
+
"b3",
|
|
66
|
+
`${span.value.traceId}-${span.value.spanId}-1${
|
|
67
|
+
span.value.parent._tag === "Some" ? `-${span.value.parent.value.spanId}` : ""
|
|
68
|
+
}`
|
|
69
|
+
))
|
|
70
|
+
: httpApp
|
|
71
|
+
)
|
|
72
|
+
)
|
|
73
|
+
|
|
50
74
|
/** @internal */
|
|
51
75
|
export const xForwardedHeaders = make((httpApp) =>
|
|
52
76
|
Effect.updateService(httpApp, ServerRequest.ServerRequest, (request) =>
|
|
@@ -3,6 +3,7 @@ import * as Context from "@effect/data/Context"
|
|
|
3
3
|
import * as Equal from "@effect/data/Equal"
|
|
4
4
|
import { dual } from "@effect/data/Function"
|
|
5
5
|
import * as Hash from "@effect/data/Hash"
|
|
6
|
+
import * as Inspectable from "@effect/data/Inspectable"
|
|
6
7
|
import * as Option from "@effect/data/Option"
|
|
7
8
|
import { pipeArguments } from "@effect/data/Pipeable"
|
|
8
9
|
import type * as Cause from "@effect/io/Cause"
|
|
@@ -91,6 +92,19 @@ class RouterImpl<R, E> implements Router.Router<R, E> {
|
|
|
91
92
|
[Hash.symbol](this: RouterImpl<R, E>): number {
|
|
92
93
|
return Hash.random(this)
|
|
93
94
|
}
|
|
95
|
+
toJSON() {
|
|
96
|
+
return {
|
|
97
|
+
_id: "Router",
|
|
98
|
+
routes: this.routes.toJSON(),
|
|
99
|
+
mounts: this.mounts.toJSON()
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
toString() {
|
|
103
|
+
return Inspectable.toString(this)
|
|
104
|
+
}
|
|
105
|
+
[Inspectable.NodeInspectSymbol]() {
|
|
106
|
+
return this.toJSON()
|
|
107
|
+
}
|
|
94
108
|
}
|
|
95
109
|
|
|
96
110
|
const toHttpApp = <R, E>(
|