@effect/platform 0.13.1 → 0.13.2
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/Headers.d.ts +3 -3
- package/Http/Headers.d.ts.map +1 -1
- package/Http/Headers.js +16 -11
- package/Http/Headers.js.map +1 -1
- package/Http/IncomingMessage.d.ts.map +1 -1
- package/Http/IncomingMessage.js +1 -1
- package/Http/IncomingMessage.js.map +1 -1
- package/internal/http/client.js +1 -1
- package/internal/http/client.js.map +1 -1
- package/internal/http/middleware.js +7 -6
- package/internal/http/middleware.js.map +1 -1
- package/internal/http/router.js +17 -16
- package/internal/http/router.js.map +1 -1
- package/internal/http/serverResponse.js +15 -12
- package/internal/http/serverResponse.js.map +1 -1
- package/mjs/Http/Headers.mjs +16 -11
- package/mjs/Http/Headers.mjs.map +1 -1
- package/mjs/Http/IncomingMessage.mjs +1 -1
- package/mjs/Http/IncomingMessage.mjs.map +1 -1
- package/mjs/internal/http/client.mjs +1 -1
- package/mjs/internal/http/client.mjs.map +1 -1
- package/mjs/internal/http/middleware.mjs +7 -6
- package/mjs/internal/http/middleware.mjs.map +1 -1
- package/mjs/internal/http/router.mjs +17 -16
- package/mjs/internal/http/router.mjs.map +1 -1
- package/mjs/internal/http/serverResponse.mjs +15 -12
- package/mjs/internal/http/serverResponse.mjs.map +1 -1
- package/package.json +4 -4
- package/src/Http/Headers.ts +23 -17
- package/src/Http/IncomingMessage.ts +1 -2
- package/src/internal/http/client.ts +18 -21
- package/src/internal/http/middleware.ts +21 -15
- package/src/internal/http/router.ts +30 -24
- package/src/internal/http/serverResponse.ts +15 -13
|
@@ -35,7 +35,7 @@ export const schemaBodyUrlParams = schema => {
|
|
|
35
35
|
*/
|
|
36
36
|
export const schemaHeaders = schema => {
|
|
37
37
|
const parse = Schema.parse(schema);
|
|
38
|
-
return self => parse(
|
|
38
|
+
return self => parse(self.headers);
|
|
39
39
|
};
|
|
40
40
|
/**
|
|
41
41
|
* @since 1.0.0
|
|
@@ -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","urlParams","_","Object","fromEntries","schemaHeaders","headers","maxBodySize","globalValue","unsafeMake","none","withMaxBodySize","effect","size","locally","map","Size"],"sources":["../../src/Http/IncomingMessage.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,SAASA,IAAI,QAAQ,uBAAuB;AAC5C,OAAO,KAAKC,MAAM,MAAM,qBAAqB;AAC7C,OAAO,KAAKC,MAAM,MAAM,qBAAqB;AAC7C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,QAAQ,MAAM,qBAAqB;AAC/C,OAAO,KAAKC,UAAU,MAAM,6BAA6B;AAIzD,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAG/C;;;;AAIA,OAAO,MAAMC,MAAM,gBAAGC,MAAM,CAACC,GAAG,CAAC,uCAAuC,CAAC;AAsBzE;;;;AAIA,OAAO,MAAMC,cAAc,GAAUC,MAA2B,IAAI;EAClE,MAAMC,KAAK,GAAGN,MAAM,CAACM,KAAK,CAACD,MAAM,CAAC;EAClC,OAAWE,IAAwB,IACjCV,MAAM,CAACW,OAAO,CAACD,IAAI,CAACE,IAAI,EAAEH,KAAK,CAAC;AACpC,CAAC;AAED;;;;AAIA,OAAO,MAAMI,mBAAmB,GAAmDL,MAA2B,IAAI;EAChH,MAAMC,KAAK,GAAGN,MAAM,CAACM,KAAK,CAACD,MAAM,CAAC;EAClC,OAAWE,IAAwB,IACjCV,MAAM,CAACW,OAAO,CAACD,IAAI,CAACI,SAAS,EAAGC,CAAC,IAAKN,KAAK,CAACO,MAAM,CAACC,WAAW,CAACF,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED;;;;AAIA,OAAO,MAAMG,aAAa,GAAmDV,MAA2B,IAAI;EAC1G,MAAMC,KAAK,GAAGN,MAAM,CAACM,KAAK,CAACD,MAAM,CAAC;EAClC,OAAWE,IAAwB,
|
|
1
|
+
{"version":3,"file":"IncomingMessage.mjs","names":["dual","Global","Option","Effect","FiberRef","FileSystem","Schema","TypeId","Symbol","for","schemaBodyJson","schema","parse","self","flatMap","json","schemaBodyUrlParams","urlParams","_","Object","fromEntries","schemaHeaders","headers","maxBodySize","globalValue","unsafeMake","none","withMaxBodySize","effect","size","locally","map","Size"],"sources":["../../src/Http/IncomingMessage.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,SAASA,IAAI,QAAQ,uBAAuB;AAC5C,OAAO,KAAKC,MAAM,MAAM,qBAAqB;AAC7C,OAAO,KAAKC,MAAM,MAAM,qBAAqB;AAC7C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,QAAQ,MAAM,qBAAqB;AAC/C,OAAO,KAAKC,UAAU,MAAM,6BAA6B;AAIzD,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAG/C;;;;AAIA,OAAO,MAAMC,MAAM,gBAAGC,MAAM,CAACC,GAAG,CAAC,uCAAuC,CAAC;AAsBzE;;;;AAIA,OAAO,MAAMC,cAAc,GAAUC,MAA2B,IAAI;EAClE,MAAMC,KAAK,GAAGN,MAAM,CAACM,KAAK,CAACD,MAAM,CAAC;EAClC,OAAWE,IAAwB,IACjCV,MAAM,CAACW,OAAO,CAACD,IAAI,CAACE,IAAI,EAAEH,KAAK,CAAC;AACpC,CAAC;AAED;;;;AAIA,OAAO,MAAMI,mBAAmB,GAAmDL,MAA2B,IAAI;EAChH,MAAMC,KAAK,GAAGN,MAAM,CAACM,KAAK,CAACD,MAAM,CAAC;EAClC,OAAWE,IAAwB,IACjCV,MAAM,CAACW,OAAO,CAACD,IAAI,CAACI,SAAS,EAAGC,CAAC,IAAKN,KAAK,CAACO,MAAM,CAACC,WAAW,CAACF,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED;;;;AAIA,OAAO,MAAMG,aAAa,GAAmDV,MAA2B,IAAI;EAC1G,MAAMC,KAAK,GAAGN,MAAM,CAACM,KAAK,CAACD,MAAM,CAAC;EAClC,OAAWE,IAAwB,IAAsDD,KAAK,CAACC,IAAI,CAACS,OAAO,CAAC;AAC9G,CAAC;AAED;;;;AAIA,OAAO,MAAMC,WAAW,gBAAsDtB,MAAM,CAACuB,WAAW,CAC9F,mDAAmD,EACnD,MAAMpB,QAAQ,CAACqB,UAAU,CAACvB,MAAM,CAACwB,IAAI,EAAmB,CAAC,CAC1D;AAED;;;;AAIA,OAAO,MAAMC,eAAe,gBAAG3B,IAAI,CAGjC,CAAC,EAAE,CAAC4B,MAAM,EAAEC,IAAI,KAAK1B,MAAM,CAAC2B,OAAO,CAACF,MAAM,EAAEL,WAAW,EAAErB,MAAM,CAAC6B,GAAG,CAACF,IAAI,EAAExB,UAAU,CAAC2B,IAAI,CAAC,CAAC,CAAC"}
|
|
@@ -35,7 +35,7 @@ export const fetch = (options = {}) => make(request => Effect.flatMap(UrlParams.
|
|
|
35
35
|
reason: "InvalidUrl",
|
|
36
36
|
error: _
|
|
37
37
|
})), url => Effect.suspend(() => {
|
|
38
|
-
const headers = new Headers(
|
|
38
|
+
const headers = new Headers(request.headers);
|
|
39
39
|
const send = body => Effect.map(Effect.tryPromise({
|
|
40
40
|
try: signal => globalThis.fetch(url, {
|
|
41
41
|
...options,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.mjs","names":["Context","dual","pipeArguments","Effect","Layer","Method","UrlParams","internalBody","internalError","internalRequest","internalResponse","Schema","Stream","tag","Tag","clientProto","pipe","arguments","setProto","f","Object","setPrototypeOf","make","client","request","flatMap","resolveBody","fetch","options","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","tap","tapRequest","zipRight"],"sources":["../../../src/internal/http/client.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,OAAO,MAAM,sBAAsB;AAC/C,SAASC,IAAI,QAAQ,uBAAuB;AAC5C,SAASC,aAAa,QAAQ,uBAAuB;AAErD,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AAOzC,OAAO,KAAKC,MAAM,MAAM,8BAA8B;AACtD,OAAO,KAAKC,SAAS,MAAM,iCAAiC;AAC5D,OAAO,KAAKC,YAAY,MAAM,qCAAqC;AACnE,OAAO,KAAKC,aAAa,MAAM,4CAA4C;AAC3E,OAAO,KAAKC,eAAe,MAAM,8CAA8C;AAC/E,OAAO,KAAKC,gBAAgB,MAAM,+CAA+C;AAEjF,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAC/C,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAE/C;AACA,OAAO,MAAMC,GAAG,gBAAGb,OAAO,CAACc,GAAG,CAAwB,8BAA8B,CAAC;AAErF,MAAMC,WAAW,GAAG;EAClBC,IAAIA,CAAA;IACF,OAAOd,aAAa,CAAC,IAAI,EAAEe,SAAS,CAAC;EACvC;CACD;AAED,MAAMC,QAAQ,GACZC,
|
|
1
|
+
{"version":3,"file":"client.mjs","names":["Context","dual","pipeArguments","Effect","Layer","Method","UrlParams","internalBody","internalError","internalRequest","internalResponse","Schema","Stream","tag","Tag","clientProto","pipe","arguments","setProto","f","Object","setPrototypeOf","make","client","request","flatMap","resolveBody","fetch","options","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","tap","tapRequest","zipRight"],"sources":["../../../src/internal/http/client.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -5,10 +5,14 @@ import * as ServerRequest from "@effect/platform/Http/ServerRequest";
|
|
|
5
5
|
/** @internal */
|
|
6
6
|
export const make = middleware => middleware;
|
|
7
7
|
/** @internal */
|
|
8
|
-
export const logger = /*#__PURE__*/make(httpApp => Effect.withLogSpan(Effect.
|
|
8
|
+
export const logger = /*#__PURE__*/make(httpApp => Effect.withLogSpan(Effect.flatMap(ServerRequest.ServerRequest, request => Effect.tap(Effect.tapErrorCause(httpApp, cause => Effect.annotateLogs(Effect.log(cause), {
|
|
9
9
|
"http.method": request.method,
|
|
10
10
|
"http.url": request.url,
|
|
11
|
-
"http.status":
|
|
11
|
+
"http.status": 500
|
|
12
|
+
})), response => Effect.annotateLogs(Effect.log(""), {
|
|
13
|
+
"http.method": request.method,
|
|
14
|
+
"http.url": request.url,
|
|
15
|
+
"http.status": response.status
|
|
12
16
|
}))), "http.span"));
|
|
13
17
|
/** @internal */
|
|
14
18
|
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}`, {
|
|
@@ -18,10 +22,7 @@ export const tracer = /*#__PURE__*/make(httpApp => Effect.flatMap(ServerRequest.
|
|
|
18
22
|
}
|
|
19
23
|
})));
|
|
20
24
|
/** @internal */
|
|
21
|
-
export const xForwardedHeaders = /*#__PURE__*/make(httpApp => Effect.
|
|
22
|
-
const forwardedHost = Headers.get(request.headers, "x-forwarded-host");
|
|
23
|
-
return forwardedHost._tag === "Some" ? Effect.updateService(httpApp, ServerRequest.ServerRequest, _ => _.replaceHeaders(Headers.set(request.headers, "host", forwardedHost.value))) : httpApp;
|
|
24
|
-
}));
|
|
25
|
+
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));
|
|
25
26
|
/** @internal */
|
|
26
27
|
export const compose = /*#__PURE__*/dual(2, (self, that) => inApp => that(self(inApp)));
|
|
27
28
|
/** @internal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.mjs","names":["dual","Effect","Headers","ServerRequest","make","middleware","logger","httpApp","withLogSpan","
|
|
1
|
+
{"version":3,"file":"middleware.mjs","names":["dual","Effect","Headers","ServerRequest","make","middleware","logger","httpApp","withLogSpan","flatMap","request","tap","tapErrorCause","cause","annotateLogs","log","method","url","response","status","tracer","withSpan","annotateCurrentSpan","attributes","xForwardedHeaders","updateService","headers","replaceHeaders","set","compose","self","that","inApp","loggerTracer"],"sources":["../../../src/internal/http/middleware.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,IAAI,QAAQ,uBAAuB;AAC5C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAE3C,OAAO,KAAKC,OAAO,MAAM,+BAA+B;AAExD,OAAO,KAAKC,aAAa,MAAM,qCAAqC;AAEpE;AACA,OAAO,MAAMC,IAAI,GAAqCC,UAAa,IAAQA,UAAU;AAErF;AACA,OAAO,MAAMC,MAAM,gBAAGF,IAAI,CAAEG,OAAO,IACjCN,MAAM,CAACO,WAAW,CAChBP,MAAM,CAACQ,OAAO,CACZN,aAAa,CAACA,aAAa,EAC1BO,OAAO,IACNT,MAAM,CAACU,GAAG,CACRV,MAAM,CAACW,aAAa,CAACL,OAAO,EAAGM,KAAK,IAClCZ,MAAM,CAACa,YAAY,CAACb,MAAM,CAACc,GAAG,CAACF,KAAK,CAAC,EAAE;EACrC,aAAa,EAAEH,OAAO,CAACM,MAAM;EAC7B,UAAU,EAAEN,OAAO,CAACO,GAAG;EACvB,aAAa,EAAE;CAChB,CAAC,CAAC,EACJC,QAAQ,IACPjB,MAAM,CAACa,YAAY,CAACb,MAAM,CAACc,GAAG,CAAC,EAAE,CAAC,EAAE;EAClC,aAAa,EAAEL,OAAO,CAACM,MAAM;EAC7B,UAAU,EAAEN,OAAO,CAACO,GAAG;EACvB,aAAa,EAAEC,QAAQ,CAACC;CACzB,CAAC,CACL,CACJ,EACD,WAAW,CACZ,CACF;AAED;AACA,OAAO,MAAMC,MAAM,gBAAGhB,IAAI,CAAEG,OAAO,IACjCN,MAAM,CAACQ,OAAO,CACZN,aAAa,CAACA,aAAa,EAC1BO,OAAO,IACNT,MAAM,CAACoB,QAAQ,CACbpB,MAAM,CAACU,GAAG,CACRJ,OAAO,EACNW,QAAQ,IAAKjB,MAAM,CAACqB,mBAAmB,CAAC,aAAa,EAAEJ,QAAQ,CAACC,MAAM,CAAC,CACzE,EACD,QAAQT,OAAO,CAACM,MAAM,EAAE,EACxB;EAAEO,UAAU,EAAE;IAAE,aAAa,EAAEb,OAAO,CAACM,MAAM;IAAE,UAAU,EAAEN,OAAO,CAACO;EAAG;AAAE,CAAE,CAC3E,CACJ,CACF;AAED;AACA,OAAO,MAAMO,iBAAiB,gBAAGpB,IAAI,CAAEG,OAAO,IAC5CN,MAAM,CAACwB,aAAa,CAAClB,OAAO,EAAEJ,aAAa,CAACA,aAAa,EAAGO,OAAO,IACjEA,OAAO,CAACgB,OAAO,CAAC,kBAAkB,CAAC,GAC/BhB,OAAO,CAACiB,cAAc,CAACzB,OAAO,CAAC0B,GAAG,CAClClB,OAAO,CAACgB,OAAO,EACf,MAAM,EACNhB,OAAO,CAACgB,OAAO,CAAC,kBAAkB,CAAC,CACpC,CAAC,GACAhB,OAAO,CAAC,CACf;AAED;AACA,OAAO,MAAMmB,OAAO,gBAAG7B,IAAI,CAUzB,CAAC,EAAE,CAAC8B,IAAI,EAAEC,IAAI,KAAMC,KAAK,IAAKD,IAAI,CAACD,IAAI,CAACE,KAAK,CAAC,CAAC,CAAC;AAElD;AACA,OAAO,MAAMC,YAAY,gBAAGJ,OAAO,CAACT,MAAM,EAAEd,MAAM,CAAC"}
|
|
@@ -63,15 +63,12 @@ class RouterImpl {
|
|
|
63
63
|
}
|
|
64
64
|
const toHttpApp = self => {
|
|
65
65
|
const router = FindMyWay();
|
|
66
|
-
Chunk.
|
|
67
|
-
|
|
68
|
-
fn.handler = Effect.updateService(app, ServerRequest.ServerRequest, request => sliceRequestUrl(request, path));
|
|
69
|
-
router.all(path, fn);
|
|
70
|
-
router.all(path + "/*", fn);
|
|
71
|
-
});
|
|
66
|
+
const mounts = Chunk.toReadonlyArray(self.mounts);
|
|
67
|
+
const mountsLen = mounts.length;
|
|
72
68
|
Chunk.forEach(self.routes, route => {
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
function fn(_, __) {
|
|
70
|
+
return route;
|
|
71
|
+
}
|
|
75
72
|
if (route.method === "*") {
|
|
76
73
|
router.all(route.path, fn);
|
|
77
74
|
} else {
|
|
@@ -79,21 +76,25 @@ const toHttpApp = self => {
|
|
|
79
76
|
}
|
|
80
77
|
});
|
|
81
78
|
return Effect.flatMap(ServerRequest.ServerRequest, request => {
|
|
79
|
+
if (mountsLen > 0) {
|
|
80
|
+
for (let i = 0; i < mountsLen; i++) {
|
|
81
|
+
const [path, app] = mounts[i];
|
|
82
|
+
if (request.url.startsWith(path)) {
|
|
83
|
+
return Effect.provideService(app, ServerRequest.ServerRequest, sliceRequestUrl(request, path));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
82
87
|
const result = router.find(request.method, request.url);
|
|
83
88
|
if (result === null) {
|
|
84
89
|
return Effect.fail(Error.RouteNotFound({
|
|
85
90
|
request
|
|
86
91
|
}));
|
|
87
92
|
}
|
|
88
|
-
const
|
|
89
|
-
if (
|
|
90
|
-
|
|
91
|
-
if (route.prefix._tag === "Some") {
|
|
92
|
-
request = sliceRequestUrl(request, route.prefix.value);
|
|
93
|
-
}
|
|
94
|
-
return Effect.mapInputContext(route.handler, context => Context.add(Context.add(context, ServerRequest.ServerRequest, request), RouteContext, new RouteContextImpl(result.params, result.searchParams)));
|
|
93
|
+
const route = result.handler();
|
|
94
|
+
if (route.prefix._tag === "Some") {
|
|
95
|
+
request = sliceRequestUrl(request, route.prefix.value);
|
|
95
96
|
}
|
|
96
|
-
return handler;
|
|
97
|
+
return Effect.mapInputContext(route.handler, context => Context.add(Context.add(context, ServerRequest.ServerRequest, request), RouteContext, new RouteContextImpl(result.params, result.searchParams)));
|
|
97
98
|
});
|
|
98
99
|
};
|
|
99
100
|
function sliceRequestUrl(request, prefix) {
|
|
@@ -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","
|
|
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"],"sources":["../../../src/internal/http/router.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { dual } from "@effect/data/Function";
|
|
2
|
-
import * as Option from "@effect/data/Option";
|
|
3
2
|
import { pipeArguments } from "@effect/data/Pipeable";
|
|
4
3
|
import * as Effect from "@effect/io/Effect";
|
|
5
4
|
import * as Headers from "@effect/platform/Http/Headers";
|
|
@@ -13,9 +12,22 @@ class ServerResponseImpl {
|
|
|
13
12
|
constructor(status, statusText, headers, body) {
|
|
14
13
|
this.status = status;
|
|
15
14
|
this.statusText = statusText;
|
|
16
|
-
this.headers = headers;
|
|
17
15
|
this.body = body;
|
|
18
16
|
this[TypeId] = TypeId;
|
|
17
|
+
if (body.contentType || body.contentLength) {
|
|
18
|
+
const newHeaders = {
|
|
19
|
+
...headers
|
|
20
|
+
};
|
|
21
|
+
if (body.contentType) {
|
|
22
|
+
newHeaders["content-type"] = body.contentType;
|
|
23
|
+
}
|
|
24
|
+
if (body.contentLength) {
|
|
25
|
+
newHeaders["content-length"] = body.contentLength.toString();
|
|
26
|
+
}
|
|
27
|
+
this.headers = newHeaders;
|
|
28
|
+
} else {
|
|
29
|
+
this.headers = headers;
|
|
30
|
+
}
|
|
19
31
|
}
|
|
20
32
|
pipe() {
|
|
21
33
|
return pipeArguments(this, arguments);
|
|
@@ -62,7 +74,7 @@ export const getContentType = options => {
|
|
|
62
74
|
if (options?.contentType) {
|
|
63
75
|
return options.contentType;
|
|
64
76
|
} else if (options?.headers) {
|
|
65
|
-
return
|
|
77
|
+
return options.headers["content-type"];
|
|
66
78
|
} else {
|
|
67
79
|
return;
|
|
68
80
|
}
|
|
@@ -78,15 +90,6 @@ export const setBody = /*#__PURE__*/dual(2, (self, body) => {
|
|
|
78
90
|
let headers = self.headers;
|
|
79
91
|
if (body._tag === "Empty") {
|
|
80
92
|
headers = Headers.remove(Headers.remove(headers, "Content-Type"), "Content-length");
|
|
81
|
-
} else {
|
|
82
|
-
const contentType = body.contentType;
|
|
83
|
-
if (contentType) {
|
|
84
|
-
headers = Headers.set(headers, "content-type", contentType);
|
|
85
|
-
}
|
|
86
|
-
const contentLength = body.contentLength;
|
|
87
|
-
if (contentLength) {
|
|
88
|
-
headers = Headers.set(headers, "content-length", contentLength.toString());
|
|
89
|
-
}
|
|
90
93
|
}
|
|
91
94
|
return new ServerResponseImpl(self.status, self.statusText, headers, body);
|
|
92
95
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverResponse.mjs","names":["dual","
|
|
1
|
+
{"version":3,"file":"serverResponse.mjs","names":["dual","pipeArguments","Effect","Headers","ServerRequest","UrlParams","internalBody","internalError","TypeId","Symbol","for","ServerResponseImpl","constructor","status","statusText","headers","body","contentType","contentLength","newHeaders","toString","pipe","arguments","isServerResponse","u","toNonEffectBody","self","_tag","map","catchAll","effect","error","flatMap","request","fail","responseError","reason","response","setBody","succeed","empty","options","uint8Array","getContentType","text","json","unsafeJson","schemaJson","schema","encode","jsonSchema","file","path","urlParams","fromInput","raw","formData","stream","setHeader","key","value","set","setHeaders","input","setAll","setStatus","args","remove"],"sources":["../../../src/internal/http/serverResponse.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.13.
|
|
3
|
+
"version": "0.13.2",
|
|
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.17.
|
|
33
|
-
"@effect/io": "^0.38.
|
|
34
|
-
"@effect/schema": "^0.33.
|
|
32
|
+
"@effect/data": "^0.17.5",
|
|
33
|
+
"@effect/io": "^0.38.2",
|
|
34
|
+
"@effect/schema": "^0.33.1",
|
|
35
35
|
"@effect/stream": "^0.34.0"
|
|
36
36
|
}
|
|
37
37
|
}
|
package/src/Http/Headers.ts
CHANGED
|
@@ -2,26 +2,27 @@
|
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
4
|
import { dual } from "@effect/data/Function"
|
|
5
|
-
import * as HashMap from "@effect/data/HashMap"
|
|
6
5
|
import type * as Option from "@effect/data/Option"
|
|
6
|
+
import * as ReadonlyArray from "@effect/data/ReadonlyArray"
|
|
7
|
+
import * as ReadonlyRecord from "@effect/data/ReadonlyRecord"
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* @since 1.0.0
|
|
10
11
|
* @category models
|
|
11
12
|
*/
|
|
12
|
-
export interface Headers extends
|
|
13
|
+
export interface Headers extends ReadonlyRecord.ReadonlyRecord<string> {}
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* @since 1.0.0
|
|
16
17
|
* @category models
|
|
17
18
|
*/
|
|
18
|
-
export type Input = Headers |
|
|
19
|
+
export type Input = Headers | Iterable<readonly [string, string]>
|
|
19
20
|
|
|
20
21
|
/**
|
|
21
22
|
* @since 1.0.0
|
|
22
23
|
* @category constructors
|
|
23
24
|
*/
|
|
24
|
-
export const empty: Headers =
|
|
25
|
+
export const empty: Headers = ReadonlyRecord.empty()
|
|
25
26
|
|
|
26
27
|
/**
|
|
27
28
|
* @since 1.0.0
|
|
@@ -30,12 +31,15 @@ export const empty: Headers = HashMap.empty()
|
|
|
30
31
|
export const fromInput: (input?: Input) => Headers = (input) => {
|
|
31
32
|
if (input === undefined) {
|
|
32
33
|
return empty
|
|
33
|
-
} else if (HashMap.isHashMap(input)) {
|
|
34
|
-
return input
|
|
35
34
|
} else if (Symbol.iterator in input) {
|
|
36
|
-
return
|
|
35
|
+
return ReadonlyRecord.fromEntries(ReadonlyArray.map(
|
|
36
|
+
ReadonlyArray.fromIterable(input),
|
|
37
|
+
([k, v]) => [k.toLowerCase(), v] as const
|
|
38
|
+
))
|
|
37
39
|
}
|
|
38
|
-
return
|
|
40
|
+
return ReadonlyRecord.fromEntries(
|
|
41
|
+
Object.entries(input).map(([k, v]) => [k.toLowerCase(), v])
|
|
42
|
+
)
|
|
39
43
|
}
|
|
40
44
|
|
|
41
45
|
/**
|
|
@@ -48,7 +52,7 @@ export const has: {
|
|
|
48
52
|
} = dual<
|
|
49
53
|
(key: string) => (self: Headers) => boolean,
|
|
50
54
|
(self: Headers, key: string) => boolean
|
|
51
|
-
>(2, (self, key) =>
|
|
55
|
+
>(2, (self, key) => ReadonlyRecord.has(self, key.toLowerCase()))
|
|
52
56
|
|
|
53
57
|
/**
|
|
54
58
|
* @since 1.0.0
|
|
@@ -60,7 +64,7 @@ export const get: {
|
|
|
60
64
|
} = dual<
|
|
61
65
|
(key: string) => (self: Headers) => Option.Option<string>,
|
|
62
66
|
(self: Headers, key: string) => Option.Option<string>
|
|
63
|
-
>(2, (self, key) =>
|
|
67
|
+
>(2, (self, key) => ReadonlyRecord.get(self, key.toLowerCase()))
|
|
64
68
|
|
|
65
69
|
/**
|
|
66
70
|
* @since 1.0.0
|
|
@@ -72,7 +76,10 @@ export const set: {
|
|
|
72
76
|
} = dual<
|
|
73
77
|
(key: string, value: string) => (self: Headers) => Headers,
|
|
74
78
|
(self: Headers, key: string, value: string) => Headers
|
|
75
|
-
>(3, (self, key, value) =>
|
|
79
|
+
>(3, (self, key, value) => ({
|
|
80
|
+
...self,
|
|
81
|
+
[key.toLowerCase()]: value
|
|
82
|
+
}))
|
|
76
83
|
|
|
77
84
|
/**
|
|
78
85
|
* @since 1.0.0
|
|
@@ -84,11 +91,10 @@ export const setAll: {
|
|
|
84
91
|
} = dual<
|
|
85
92
|
(headers: Input) => (self: Headers) => Headers,
|
|
86
93
|
(self: Headers, headers: Input) => Headers
|
|
87
|
-
>(2, (self, headers) =>
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
))
|
|
94
|
+
>(2, (self, headers) => ({
|
|
95
|
+
...self,
|
|
96
|
+
...fromInput(headers)
|
|
97
|
+
}))
|
|
92
98
|
|
|
93
99
|
/**
|
|
94
100
|
* @since 1.0.0
|
|
@@ -100,4 +106,4 @@ export const remove: {
|
|
|
100
106
|
} = dual<
|
|
101
107
|
(key: string) => (self: Headers) => Headers,
|
|
102
108
|
(self: Headers, key: string) => Headers
|
|
103
|
-
>(2, (self, key) =>
|
|
109
|
+
>(2, (self, key) => ReadonlyRecord.remove(self, key.toLowerCase()))
|
|
@@ -65,8 +65,7 @@ export const schemaBodyUrlParams = <I extends Readonly<Record<string, string>>,
|
|
|
65
65
|
*/
|
|
66
66
|
export const schemaHeaders = <I extends Readonly<Record<string, string>>, A>(schema: Schema.Schema<I, A>) => {
|
|
67
67
|
const parse = Schema.parse(schema)
|
|
68
|
-
return <E>(self: IncomingMessage<E>): Effect.Effect<never, ParseResult.ParseError, A> =>
|
|
69
|
-
parse(Object.fromEntries(self.headers))
|
|
68
|
+
return <E>(self: IncomingMessage<E>): Effect.Effect<never, ParseResult.ParseError, A> => parse(self.headers)
|
|
70
69
|
}
|
|
71
70
|
|
|
72
71
|
/**
|
|
@@ -30,7 +30,7 @@ const clientProto = {
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
const setProto = <R, E, A>(
|
|
33
|
-
f: (request: ClientRequest.ClientRequest
|
|
33
|
+
f: (request: ClientRequest.ClientRequest) => Effect.Effect<R, E, A>
|
|
34
34
|
) => {
|
|
35
35
|
Object.setPrototypeOf(f, clientProto)
|
|
36
36
|
return f as Client.Client<R, E, A>
|
|
@@ -65,7 +65,7 @@ export const fetch = (
|
|
|
65
65
|
})),
|
|
66
66
|
(url) =>
|
|
67
67
|
Effect.suspend(() => {
|
|
68
|
-
const headers = new Headers(
|
|
68
|
+
const headers = new Headers(request.headers)
|
|
69
69
|
const send = (body: BodyInit | undefined) =>
|
|
70
70
|
Effect.map(
|
|
71
71
|
Effect.tryPromise({
|
|
@@ -118,20 +118,20 @@ export const layer = Layer.succeed(tag, fetch())
|
|
|
118
118
|
|
|
119
119
|
/** @internal */
|
|
120
120
|
export const catchTag: {
|
|
121
|
-
<E extends { _tag: string }
|
|
121
|
+
<K extends (E extends { _tag: string } ? E["_tag"] : never), E, R1, E1, A1>(
|
|
122
122
|
tag: K,
|
|
123
123
|
f: (e: Extract<E, { _tag: K }>) => Effect.Effect<R1, E1, A1>
|
|
124
124
|
): <R, A>(
|
|
125
125
|
self: Client.Client<R, E, A>
|
|
126
126
|
) => Client.Client<R1 | R, E1 | Exclude<E, { _tag: K }>, A1 | A>
|
|
127
|
-
<R, E extends { _tag: string }
|
|
127
|
+
<R, E, A, K extends (E extends { _tag: string } ? E["_tag"] : never), R1, E1, A1>(
|
|
128
128
|
self: Client.Client<R, E, A>,
|
|
129
129
|
tag: K,
|
|
130
130
|
f: (e: Extract<E, { _tag: K }>) => Effect.Effect<R1, E1, A1>
|
|
131
131
|
): Client.Client<R1 | R, E1 | Exclude<E, { _tag: K }>, A1 | A>
|
|
132
132
|
} = dual(
|
|
133
133
|
3,
|
|
134
|
-
<R, E extends { _tag: string }
|
|
134
|
+
<R, E, A, K extends (E extends { _tag: string } ? E["_tag"] : never), R1, E1, A1>(
|
|
135
135
|
self: Client.Client<R, E, A>,
|
|
136
136
|
tag: K,
|
|
137
137
|
f: (e: Extract<E, { _tag: K }>) => Effect.Effect<R1, E1, A1>
|
|
@@ -142,12 +142,11 @@ export const catchTag: {
|
|
|
142
142
|
/** @internal */
|
|
143
143
|
export const catchTags: {
|
|
144
144
|
<
|
|
145
|
-
E
|
|
146
|
-
Cases
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}
|
|
145
|
+
E,
|
|
146
|
+
Cases
|
|
147
|
+
extends (E extends { _tag: string }
|
|
148
|
+
? { [K in E["_tag"]]+?: ((error: Extract<E, { _tag: K }>) => Effect.Effect<any, any, any>) }
|
|
149
|
+
: {})
|
|
151
150
|
>(
|
|
152
151
|
cases: Cases
|
|
153
152
|
): <R, A>(
|
|
@@ -179,11 +178,10 @@ export const catchTags: {
|
|
|
179
178
|
R,
|
|
180
179
|
E extends { _tag: string },
|
|
181
180
|
A,
|
|
182
|
-
Cases
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
}
|
|
181
|
+
Cases
|
|
182
|
+
extends (E extends { _tag: string }
|
|
183
|
+
? { [K in E["_tag"]]+?: ((error: Extract<E, { _tag: K }>) => Effect.Effect<any, any, any>) }
|
|
184
|
+
: {})
|
|
187
185
|
>(
|
|
188
186
|
self: Client.Client<R, E, A>,
|
|
189
187
|
cases: Cases
|
|
@@ -216,11 +214,10 @@ export const catchTags: {
|
|
|
216
214
|
R,
|
|
217
215
|
E extends { _tag: string },
|
|
218
216
|
A,
|
|
219
|
-
Cases
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
}
|
|
217
|
+
Cases
|
|
218
|
+
extends (E extends { _tag: string }
|
|
219
|
+
? { [K in E["_tag"]]+?: ((error: Extract<E, { _tag: K }>) => Effect.Effect<any, any, any>) }
|
|
220
|
+
: {})
|
|
224
221
|
>(
|
|
225
222
|
self: Client.Client<R, E, A>,
|
|
226
223
|
cases: Cases
|
|
@@ -11,16 +11,21 @@ export const make = <M extends Middleware.Middleware>(middleware: M): M => middl
|
|
|
11
11
|
/** @internal */
|
|
12
12
|
export const logger = make((httpApp) =>
|
|
13
13
|
Effect.withLogSpan(
|
|
14
|
-
Effect.
|
|
15
|
-
|
|
16
|
-
(
|
|
17
|
-
Effect.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
Effect.flatMap(
|
|
15
|
+
ServerRequest.ServerRequest,
|
|
16
|
+
(request) =>
|
|
17
|
+
Effect.tap(
|
|
18
|
+
Effect.tapErrorCause(httpApp, (cause) =>
|
|
19
|
+
Effect.annotateLogs(Effect.log(cause), {
|
|
20
|
+
"http.method": request.method,
|
|
21
|
+
"http.url": request.url,
|
|
22
|
+
"http.status": 500
|
|
23
|
+
})),
|
|
24
|
+
(response) =>
|
|
25
|
+
Effect.annotateLogs(Effect.log(""), {
|
|
21
26
|
"http.method": request.method,
|
|
22
27
|
"http.url": request.url,
|
|
23
|
-
"http.status":
|
|
28
|
+
"http.status": response.status
|
|
24
29
|
})
|
|
25
30
|
)
|
|
26
31
|
),
|
|
@@ -46,13 +51,14 @@ export const tracer = make((httpApp) =>
|
|
|
46
51
|
|
|
47
52
|
/** @internal */
|
|
48
53
|
export const xForwardedHeaders = make((httpApp) =>
|
|
49
|
-
Effect.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
Effect.updateService(httpApp, ServerRequest.ServerRequest, (request) =>
|
|
55
|
+
request.headers["x-forwarded-host"]
|
|
56
|
+
? request.replaceHeaders(Headers.set(
|
|
57
|
+
request.headers,
|
|
58
|
+
"host",
|
|
59
|
+
request.headers["x-forwarded-host"]
|
|
60
|
+
))
|
|
61
|
+
: request)
|
|
56
62
|
)
|
|
57
63
|
|
|
58
64
|
/** @internal */
|