@effect/platform 0.13.3 → 0.13.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/Http/Body.d.ts +8 -1
- package/Http/Body.d.ts.map +1 -1
- package/Http/Body.js +7 -1
- package/Http/Body.js.map +1 -1
- package/Http/Client.d.ts +11 -0
- package/Http/Client.d.ts.map +1 -1
- package/Http/Client.js +7 -1
- package/Http/Client.js.map +1 -1
- package/Http/Etag.d.ts +56 -0
- package/Http/Etag.d.ts.map +1 -0
- package/Http/Etag.js +28 -0
- package/Http/Etag.js.map +1 -0
- package/Http/Router.d.ts +1 -1
- package/Http/Router.d.ts.map +1 -1
- package/Http/Router.js +3 -3
- package/Http/Router.js.map +1 -1
- package/Http/ServerResponse.d.ts +2 -1
- package/Http/ServerResponse.d.ts.map +1 -1
- package/Http/ServerResponse.js.map +1 -1
- package/internal/http/body.js +6 -2
- package/internal/http/body.js.map +1 -1
- package/internal/http/client.d.ts.map +1 -1
- package/internal/http/client.js +6 -2
- package/internal/http/client.js.map +1 -1
- package/internal/http/etag.d.ts +2 -0
- package/internal/http/etag.d.ts.map +1 -0
- package/internal/http/etag.js +26 -0
- package/internal/http/etag.js.map +1 -0
- package/internal/http/router.d.ts.map +1 -1
- package/internal/http/router.js +9 -9
- package/internal/http/router.js.map +1 -1
- package/internal/http/server.js +1 -1
- package/internal/http/server.js.map +1 -1
- package/internal/http/serverResponse.js +20 -1
- package/internal/http/serverResponse.js.map +1 -1
- package/mjs/Http/Body.mjs +5 -0
- package/mjs/Http/Body.mjs.map +1 -1
- package/mjs/Http/Client.mjs +5 -0
- package/mjs/Http/Client.mjs.map +1 -1
- package/mjs/Http/Etag.mjs +17 -0
- package/mjs/Http/Etag.mjs.map +1 -0
- package/mjs/Http/Router.mjs +1 -1
- package/mjs/Http/Router.mjs.map +1 -1
- package/mjs/Http/ServerResponse.mjs.map +1 -1
- package/mjs/internal/http/body.mjs +4 -1
- package/mjs/internal/http/body.mjs.map +1 -1
- package/mjs/internal/http/client.mjs +4 -1
- package/mjs/internal/http/client.mjs.map +1 -1
- package/mjs/internal/http/etag.mjs +15 -0
- package/mjs/internal/http/etag.mjs.map +1 -0
- package/mjs/internal/http/router.mjs +7 -7
- package/mjs/internal/http/router.mjs.map +1 -1
- package/mjs/internal/http/server.mjs +1 -1
- package/mjs/internal/http/server.mjs.map +1 -1
- package/mjs/internal/http/serverResponse.mjs +20 -1
- package/mjs/internal/http/serverResponse.mjs.map +1 -1
- package/package.json +2 -1
- package/src/Http/Body.ts +16 -1
- package/src/Http/Client.ts +13 -0
- package/src/Http/Etag.ts +64 -0
- package/src/Http/Router.ts +52 -22
- package/src/Http/ServerResponse.ts +2 -1
- package/src/internal/http/body.ts +22 -3
- package/src/internal/http/client.ts +5 -1
- package/src/internal/http/etag.ts +20 -0
- package/src/internal/http/router.ts +7 -7
- package/src/internal/http/server.ts +1 -1
- package/src/internal/http/serverResponse.ts +32 -10
|
@@ -154,16 +154,16 @@ export const head = /*#__PURE__*/route("HEAD");
|
|
|
154
154
|
/** @internal */
|
|
155
155
|
export const options = /*#__PURE__*/route("OPTIONS");
|
|
156
156
|
/** @internal */
|
|
157
|
-
export const
|
|
157
|
+
export const use = /*#__PURE__*/dual(2, (self, f) => new RouterImpl(Chunk.map(self.routes, route => new RouteImpl(route.method, route.path, f(route.handler), route.prefix)), Chunk.map(self.mounts, ([path, app]) => [path, f(app)])));
|
|
158
158
|
/** @internal */
|
|
159
|
-
export const catchAll = /*#__PURE__*/dual(2, (self, f) =>
|
|
159
|
+
export const catchAll = /*#__PURE__*/dual(2, (self, f) => use(self, Effect.catchAll(f)));
|
|
160
160
|
/** @internal */
|
|
161
|
-
export const catchAllCause = /*#__PURE__*/dual(2, (self, f) =>
|
|
161
|
+
export const catchAllCause = /*#__PURE__*/dual(2, (self, f) => use(self, Effect.catchAllCause(f)));
|
|
162
162
|
/** @internal */
|
|
163
|
-
export const catchTag = /*#__PURE__*/dual(3, (self, k, f) =>
|
|
163
|
+
export const catchTag = /*#__PURE__*/dual(3, (self, k, f) => use(self, Effect.catchTag(k, f)));
|
|
164
164
|
/** @internal */
|
|
165
|
-
export const catchTags = /*#__PURE__*/dual(2, (self, cases) =>
|
|
166
|
-
export const provideService = /*#__PURE__*/dual(3, (self, tag, service) =>
|
|
165
|
+
export const catchTags = /*#__PURE__*/dual(2, (self, cases) => use(self, Effect.catchTags(cases)));
|
|
166
|
+
export const provideService = /*#__PURE__*/dual(3, (self, tag, service) => use(self, Effect.provideService(tag, service)));
|
|
167
167
|
/* @internal */
|
|
168
|
-
export const provideServiceEffect = /*#__PURE__*/dual(3, (self, tag, effect) =>
|
|
168
|
+
export const provideServiceEffect = /*#__PURE__*/dual(3, (self, tag, effect) => use(self, Effect.provideServiceEffect(tag, effect)));
|
|
169
169
|
//# sourceMappingURL=router.mjs.map
|
|
@@ -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","
|
|
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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"}
|
|
@@ -4,7 +4,7 @@ import * as Effect from "@effect/io/Effect";
|
|
|
4
4
|
/** @internal */
|
|
5
5
|
export const TypeId = /*#__PURE__*/Symbol.for("@effect/platform/Http/Server");
|
|
6
6
|
/** @internal */
|
|
7
|
-
export const serverTag = /*#__PURE__*/Context.Tag(
|
|
7
|
+
export const serverTag = /*#__PURE__*/Context.Tag(TypeId);
|
|
8
8
|
const serverProto = {
|
|
9
9
|
[TypeId]: TypeId
|
|
10
10
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.mjs","names":["Context","dual","Effect","TypeId","Symbol","for","serverTag","Tag","serverProto","isServer","u","make","options","Object","assign","create","serve","args","isEffect","httpApp","middleware","flatMap","server"],"sources":["../../../src/internal/http/server.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,OAAO,MAAM,sBAAsB;AAC/C,SAASC,IAAI,QAAQ,uBAAuB;AAC5C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAQ3C;AACA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAAC,8BAA8B,CAAkB;AAEhG;AACA,OAAO,MAAMC,SAAS,gBAAGN,OAAO,CAACO,GAAG,
|
|
1
|
+
{"version":3,"file":"server.mjs","names":["Context","dual","Effect","TypeId","Symbol","for","serverTag","Tag","serverProto","isServer","u","make","options","Object","assign","create","serve","args","isEffect","httpApp","middleware","flatMap","server"],"sources":["../../../src/internal/http/server.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,OAAO,MAAM,sBAAsB;AAC/C,SAASC,IAAI,QAAQ,uBAAuB;AAC5C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAQ3C;AACA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAAC,8BAA8B,CAAkB;AAEhG;AACA,OAAO,MAAMC,SAAS,gBAAGN,OAAO,CAACO,GAAG,CAAgBJ,MAAM,CAAC;AAE3D,MAAMK,WAAW,GAAG;EAClB,CAACL,MAAM,GAAGA;CACX;AAED;AACA,OAAO,MAAMM,QAAQ,GAAIC,CAAU,IAAyB,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,IAAIP,MAAM,IAAIO,CAAC;AAE9G;AACA,OAAO,MAAMC,IAAI,GACfC,OAMC,IACiBC,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,MAAM,CAACP,WAAW,CAAC,EAAEI,OAAO,CAAC;AAEtE;AACA,OAAO,MAAMI,KAAK,gBAAGf,IAAI,CA+BtBgB,IAAI,IAAKf,MAAM,CAACgB,QAAQ,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACjC,CACCE,OAA0B,EAC1BC,UAAoD,KAMpDlB,MAAM,CAACmB,OAAO,CACZf,SAAS,EACRgB,MAAM,IAAKA,MAAM,CAACN,KAAK,CAACG,OAAO,EAAEC,UAAU,CAAC,CACtC,CACZ"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { dual } from "@effect/data/Function";
|
|
2
2
|
import { pipeArguments } from "@effect/data/Pipeable";
|
|
3
3
|
import * as Effect from "@effect/io/Effect";
|
|
4
|
+
import * as FileSystem from "@effect/platform/FileSystem";
|
|
5
|
+
import * as Etag from "@effect/platform/Http/Etag";
|
|
4
6
|
import * as Headers from "@effect/platform/Http/Headers";
|
|
5
7
|
import * as ServerRequest from "@effect/platform/Http/ServerRequest";
|
|
6
8
|
import * as UrlParams from "@effect/platform/Http/UrlParams";
|
|
@@ -58,7 +60,24 @@ export const schemaJson = schema => {
|
|
|
58
60
|
return (body, options) => new ServerResponseImpl(options?.status ?? 200, options?.statusText, options?.headers ?? Headers.empty, encode(body));
|
|
59
61
|
};
|
|
60
62
|
/** @internal */
|
|
61
|
-
export const file = (path, options) => Effect.map(
|
|
63
|
+
export const file = (path, options) => Effect.map(({
|
|
64
|
+
body,
|
|
65
|
+
etag,
|
|
66
|
+
info
|
|
67
|
+
}) => {
|
|
68
|
+
const headers = {
|
|
69
|
+
...(options?.headers ?? {}),
|
|
70
|
+
etag: Etag.toString(etag)
|
|
71
|
+
};
|
|
72
|
+
if (info.mtime._tag === "Some") {
|
|
73
|
+
headers["last-modified"] = info.mtime.value.toUTCString();
|
|
74
|
+
}
|
|
75
|
+
return new ServerResponseImpl(options?.status ?? 200, options?.statusText, headers, body);
|
|
76
|
+
})(Effect.bind("body", ({
|
|
77
|
+
info
|
|
78
|
+
}) => internalBody.fileInfo(path, info, options))(Effect.bind("etag", ({
|
|
79
|
+
info
|
|
80
|
+
}) => Effect.flatMap(Etag.Generator, generator => generator.fromFileInfo(info)))(Effect.bindTo(Effect.flatMap(FileSystem.FileSystem, fs => fs.stat(path)), "info"))));
|
|
62
81
|
/** @internal */
|
|
63
82
|
export const urlParams = (body, options) => new ServerResponseImpl(options?.status ?? 200, options?.statusText, options?.headers ?? Headers.empty, internalBody.text(UrlParams.toString(UrlParams.fromInput(body)), "application/x-www-form-urlencoded"));
|
|
64
83
|
/** @internal */
|
|
@@ -1 +1 @@
|
|
|
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","
|
|
1
|
+
{"version":3,"file":"serverResponse.mjs","names":["dual","pipeArguments","Effect","FileSystem","Etag","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","etag","info","mtime","value","toUTCString","bind","fileInfo","Generator","generator","fromFileInfo","bindTo","fs","stat","urlParams","fromInput","raw","formData","stream","setHeader","key","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.4",
|
|
4
4
|
"description": "Unified interfaces for common platform-specific services",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"author": "Effect contributors",
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"find-my-way": "^7.6.2",
|
|
29
|
+
"mime": "^3.0.0",
|
|
29
30
|
"path-browserify": "^1.0.1"
|
|
30
31
|
},
|
|
31
32
|
"peerDependencies": {
|
package/src/Http/Body.ts
CHANGED
|
@@ -163,7 +163,12 @@ export interface Stream extends Body.Proto {
|
|
|
163
163
|
* @since 1.0.0
|
|
164
164
|
* @category constructors
|
|
165
165
|
*/
|
|
166
|
-
export const stream: (
|
|
166
|
+
export const stream: (
|
|
167
|
+
body: Stream_.Stream<never, unknown, globalThis.Uint8Array>,
|
|
168
|
+
contentType?: string,
|
|
169
|
+
contentLength?: number,
|
|
170
|
+
etag?: string
|
|
171
|
+
) => Stream = internal.stream
|
|
167
172
|
|
|
168
173
|
/**
|
|
169
174
|
* @since 1.0.0
|
|
@@ -173,3 +178,13 @@ export const file: (
|
|
|
173
178
|
path: string,
|
|
174
179
|
options?: FileSystem.StreamOptions & { readonly contentType?: string }
|
|
175
180
|
) => Effect.Effect<FileSystem.FileSystem, PlatformError.PlatformError, Stream> = internal.file
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* @since 1.0.0
|
|
184
|
+
* @category constructors
|
|
185
|
+
*/
|
|
186
|
+
export const fileInfo: (
|
|
187
|
+
path: string,
|
|
188
|
+
info: FileSystem.File.Info,
|
|
189
|
+
options?: FileSystem.StreamOptions & { readonly contentType?: string }
|
|
190
|
+
) => Effect.Effect<FileSystem.FileSystem, PlatformError.PlatformError, Stream> = internal.fileInfo
|
package/src/Http/Client.ts
CHANGED
|
@@ -14,11 +14,24 @@ import * as internal from "@effect/platform/internal/http/client"
|
|
|
14
14
|
import type * as ParseResult from "@effect/schema/ParseResult"
|
|
15
15
|
import type * as Schema from "@effect/schema/Schema"
|
|
16
16
|
|
|
17
|
+
/**
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
* @category type ids
|
|
20
|
+
*/
|
|
21
|
+
export const TypeId: unique symbol = internal.TypeId
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @since 1.0.0
|
|
25
|
+
* @category type ids
|
|
26
|
+
*/
|
|
27
|
+
export type TypeId = typeof TypeId
|
|
28
|
+
|
|
17
29
|
/**
|
|
18
30
|
* @since 1.0.0
|
|
19
31
|
* @category models
|
|
20
32
|
*/
|
|
21
33
|
export interface Client<R, E, A> extends Pipeable {
|
|
34
|
+
readonly [TypeId]: TypeId
|
|
22
35
|
(request: ClientRequest.ClientRequest): Effect.Effect<R, E, A>
|
|
23
36
|
}
|
|
24
37
|
|
package/src/Http/Etag.ts
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Context from "@effect/data/Context"
|
|
5
|
+
import type * as Effect from "@effect/io/Effect"
|
|
6
|
+
import type * as FileSystem from "@effect/platform/FileSystem"
|
|
7
|
+
import * as internal from "@effect/platform/internal/http/etag"
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @since 1.0.0
|
|
11
|
+
* @category models
|
|
12
|
+
*/
|
|
13
|
+
export type Etag = Weak | Strong
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @since 1.0.0
|
|
17
|
+
* @category models
|
|
18
|
+
*/
|
|
19
|
+
export interface Weak {
|
|
20
|
+
readonly _tag: "Weak"
|
|
21
|
+
readonly value: string
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @since 1.0.0
|
|
26
|
+
* @category models
|
|
27
|
+
*/
|
|
28
|
+
export interface Strong {
|
|
29
|
+
readonly _tag: "Strong"
|
|
30
|
+
readonly value: string
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @since 1.0.0
|
|
35
|
+
* @category convertions
|
|
36
|
+
*/
|
|
37
|
+
export const toString: (self: Etag) => string = internal.toString
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @since 1.0.0
|
|
41
|
+
* @category type ids
|
|
42
|
+
*/
|
|
43
|
+
export const GeneratorTypeId: unique symbol = internal.GeneratorTypeId
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* @since 1.0.0
|
|
47
|
+
* @category type ids
|
|
48
|
+
*/
|
|
49
|
+
export type GeneratorTypeId = typeof GeneratorTypeId
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @since 1.0.0
|
|
53
|
+
* @category models
|
|
54
|
+
*/
|
|
55
|
+
export interface Generator {
|
|
56
|
+
readonly [GeneratorTypeId]: GeneratorTypeId
|
|
57
|
+
readonly fromFileInfo: (info: FileSystem.File.Info) => Effect.Effect<never, never, Etag>
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* @since 1.0.0
|
|
62
|
+
* @category tags
|
|
63
|
+
*/
|
|
64
|
+
export const Generator: Context.Tag<Generator, Generator> = internal.tag
|
package/src/Http/Router.ts
CHANGED
|
@@ -346,15 +346,20 @@ export const options: {
|
|
|
346
346
|
* @since 1.0.0
|
|
347
347
|
* @category combinators
|
|
348
348
|
*/
|
|
349
|
-
export const
|
|
349
|
+
export const use = internal.use
|
|
350
350
|
|
|
351
351
|
/**
|
|
352
352
|
* @since 1.0.0
|
|
353
353
|
* @category combinators
|
|
354
354
|
*/
|
|
355
355
|
export const catchAll: {
|
|
356
|
-
<E, R2, E2>(f: (e: E) => Route.Handler<R2, E2>): <R>(
|
|
357
|
-
|
|
356
|
+
<E, R2, E2>(f: (e: E) => Route.Handler<R2, E2>): <R>(
|
|
357
|
+
self: Router<R, E>
|
|
358
|
+
) => Router<R2 | R, E2>
|
|
359
|
+
<R, E, R2, E2>(
|
|
360
|
+
self: Router<R, E>,
|
|
361
|
+
f: (e: E) => Route.Handler<R2, E2>
|
|
362
|
+
): Router<R | R2, E2>
|
|
358
363
|
} = internal.catchAll
|
|
359
364
|
|
|
360
365
|
/**
|
|
@@ -362,8 +367,13 @@ export const catchAll: {
|
|
|
362
367
|
* @category combinators
|
|
363
368
|
*/
|
|
364
369
|
export const catchAllCause: {
|
|
365
|
-
<E, R2, E2>(f: (e: Cause.Cause<E>) => Route.Handler<R2, E2>): <R>(
|
|
366
|
-
|
|
370
|
+
<E, R2, E2>(f: (e: Cause.Cause<E>) => Route.Handler<R2, E2>): <R>(
|
|
371
|
+
self: Router<R, E>
|
|
372
|
+
) => Router<R2 | R, E2>
|
|
373
|
+
<R, E, R2, E2>(
|
|
374
|
+
self: Router<R, E>,
|
|
375
|
+
f: (e: Cause.Cause<E>) => Route.Handler<R2, E2>
|
|
376
|
+
): Router<R | R2, E2>
|
|
367
377
|
} = internal.catchAllCause
|
|
368
378
|
|
|
369
379
|
/**
|
|
@@ -389,40 +399,56 @@ export const catchTag: {
|
|
|
389
399
|
export const catchTags: {
|
|
390
400
|
<
|
|
391
401
|
E,
|
|
392
|
-
Cases extends E extends { _tag: string }
|
|
393
|
-
|
|
402
|
+
Cases extends E extends { _tag: string } ? {
|
|
403
|
+
[K in E["_tag"]]+?:
|
|
404
|
+
| ((error: Extract<E, { _tag: K }>) => Route.Handler<any, any>)
|
|
405
|
+
| undefined
|
|
406
|
+
}
|
|
394
407
|
: {}
|
|
395
408
|
>(
|
|
396
409
|
cases: Cases
|
|
397
|
-
): <R>(
|
|
398
|
-
self: Router<R, E>
|
|
399
|
-
) => Router<
|
|
410
|
+
): <R>(self: Router<R, E>) => Router<
|
|
400
411
|
| R
|
|
401
412
|
| {
|
|
402
|
-
[K in keyof Cases]: Cases[K] extends (
|
|
413
|
+
[K in keyof Cases]: Cases[K] extends (
|
|
414
|
+
...args: Array<any>
|
|
415
|
+
) => Effect.Effect<infer R, any, any> ? R
|
|
416
|
+
: never
|
|
403
417
|
}[keyof Cases],
|
|
404
418
|
| Exclude<E, { _tag: keyof Cases }>
|
|
405
419
|
| {
|
|
406
|
-
[K in keyof Cases]: Cases[K] extends (
|
|
420
|
+
[K in keyof Cases]: Cases[K] extends (
|
|
421
|
+
...args: Array<any>
|
|
422
|
+
) => Effect.Effect<any, infer E, any> ? E
|
|
423
|
+
: never
|
|
407
424
|
}[keyof Cases]
|
|
408
425
|
>
|
|
409
426
|
<
|
|
410
427
|
R,
|
|
411
428
|
E,
|
|
412
|
-
Cases extends E extends { _tag: string }
|
|
413
|
-
|
|
414
|
-
|
|
429
|
+
Cases extends E extends { _tag: string } ? {
|
|
430
|
+
[K in E["_tag"]]+?:
|
|
431
|
+
| ((error: Extract<E, { _tag: K }>) => Route.Handler<any, any>)
|
|
432
|
+
| undefined
|
|
433
|
+
}
|
|
434
|
+
: {}
|
|
415
435
|
>(
|
|
416
436
|
self: Router<R, E>,
|
|
417
437
|
cases: Cases
|
|
418
438
|
): Router<
|
|
419
439
|
| R
|
|
420
440
|
| {
|
|
421
|
-
[K in keyof Cases]: Cases[K] extends (
|
|
441
|
+
[K in keyof Cases]: Cases[K] extends (
|
|
442
|
+
...args: Array<any>
|
|
443
|
+
) => Effect.Effect<infer R, any, any> ? R
|
|
444
|
+
: never
|
|
422
445
|
}[keyof Cases],
|
|
423
446
|
| Exclude<E, { _tag: keyof Cases }>
|
|
424
447
|
| {
|
|
425
|
-
[K in keyof Cases]: Cases[K] extends (
|
|
448
|
+
[K in keyof Cases]: Cases[K] extends (
|
|
449
|
+
...args: Array<any>
|
|
450
|
+
) => Effect.Effect<any, infer E, any> ? E
|
|
451
|
+
: never
|
|
426
452
|
}[keyof Cases]
|
|
427
453
|
>
|
|
428
454
|
} = internal.catchTags
|
|
@@ -432,10 +458,12 @@ export const catchTags: {
|
|
|
432
458
|
* @category combinators
|
|
433
459
|
*/
|
|
434
460
|
export const provideService: {
|
|
435
|
-
<T extends Context.Tag<any, any>>(
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
461
|
+
<T extends Context.Tag<any, any>>(tag: T, service: Context.Tag.Service<T>): <
|
|
462
|
+
R,
|
|
463
|
+
E
|
|
464
|
+
>(
|
|
465
|
+
self: Router<R, E>
|
|
466
|
+
) => Router<Exclude<R, Context.Tag.Identifier<T>>, E>
|
|
439
467
|
<R, E, T extends Context.Tag<any, any>>(
|
|
440
468
|
self: Router<R, E>,
|
|
441
469
|
tag: T,
|
|
@@ -451,7 +479,9 @@ export const provideServiceEffect: {
|
|
|
451
479
|
<T extends Context.Tag<any, any>, R1, E1>(
|
|
452
480
|
tag: T,
|
|
453
481
|
effect: Effect.Effect<R1, E1, Context.Tag.Service<T>>
|
|
454
|
-
): <R, E>(
|
|
482
|
+
): <R, E>(
|
|
483
|
+
self: Router<R, E>
|
|
484
|
+
) => Router<R1 | Exclude<R, Context.Tag.Identifier<T>>, E1 | E>
|
|
455
485
|
<R, E, T extends Context.Tag<any, any>, R1, E1>(
|
|
456
486
|
self: Router<R, E>,
|
|
457
487
|
tag: T,
|
|
@@ -6,6 +6,7 @@ import type * as Effect from "@effect/io/Effect"
|
|
|
6
6
|
import type * as PlatformError from "@effect/platform/Error"
|
|
7
7
|
import type * as FileSystem from "@effect/platform/FileSystem"
|
|
8
8
|
import type * as Body from "@effect/platform/Http/Body"
|
|
9
|
+
import type * as Etag from "@effect/platform/Http/Etag"
|
|
9
10
|
import type * as Headers from "@effect/platform/Http/Headers"
|
|
10
11
|
import type * as Error from "@effect/platform/Http/ServerError"
|
|
11
12
|
import type * as ServerRequest from "@effect/platform/Http/ServerRequest"
|
|
@@ -172,7 +173,7 @@ export const stream: (body: Stream.Stream<never, unknown, Uint8Array>, options?:
|
|
|
172
173
|
export const file: (
|
|
173
174
|
path: string,
|
|
174
175
|
options?: Options & FileSystem.StreamOptions
|
|
175
|
-
) => Effect.Effect<FileSystem.FileSystem, PlatformError.PlatformError, ServerResponse> = internal.file
|
|
176
|
+
) => Effect.Effect<FileSystem.FileSystem | Etag.Generator, PlatformError.PlatformError, ServerResponse> = internal.file
|
|
176
177
|
|
|
177
178
|
/**
|
|
178
179
|
* @since 1.0.0
|
|
@@ -4,6 +4,7 @@ import * as FileSystem from "@effect/platform/FileSystem"
|
|
|
4
4
|
import type * as Body from "@effect/platform/Http/Body"
|
|
5
5
|
import * as Schema from "@effect/schema/Schema"
|
|
6
6
|
import type * as Stream_ from "@effect/stream/Stream"
|
|
7
|
+
import * as Mime from "mime/lite"
|
|
7
8
|
|
|
8
9
|
/** @internal */
|
|
9
10
|
export const TypeId: Body.TypeId = Symbol.for(
|
|
@@ -100,9 +101,27 @@ export const file = (
|
|
|
100
101
|
Effect.flatMap(
|
|
101
102
|
FileSystem.FileSystem,
|
|
102
103
|
(fs) =>
|
|
103
|
-
Effect.map(
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
Effect.map(fs.stat(path), (info) =>
|
|
105
|
+
stream(
|
|
106
|
+
fs.stream(path, options),
|
|
107
|
+
options?.contentType ?? Mime.getType(path) ?? undefined,
|
|
108
|
+
Number(info.size)
|
|
109
|
+
))
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
/** @internal */
|
|
113
|
+
export const fileInfo = (
|
|
114
|
+
path: string,
|
|
115
|
+
info: FileSystem.File.Info,
|
|
116
|
+
options?: FileSystem.StreamOptions & { readonly contentType?: string }
|
|
117
|
+
): Effect.Effect<FileSystem.FileSystem, PlatformError.PlatformError, Body.Stream> =>
|
|
118
|
+
Effect.map(
|
|
119
|
+
FileSystem.FileSystem,
|
|
120
|
+
(fs) =>
|
|
121
|
+
stream(
|
|
122
|
+
fs.stream(path, options),
|
|
123
|
+
options?.contentType ?? Mime.getType(path) ?? undefined,
|
|
124
|
+
Number(info.size)
|
|
106
125
|
)
|
|
107
126
|
)
|
|
108
127
|
|
|
@@ -21,9 +21,13 @@ import * as Schema from "@effect/schema/Schema"
|
|
|
21
21
|
import * as Stream from "@effect/stream/Stream"
|
|
22
22
|
|
|
23
23
|
/** @internal */
|
|
24
|
-
export const
|
|
24
|
+
export const TypeId: Client.TypeId = Symbol.for("@effect/platform/Http/Client") as Client.TypeId
|
|
25
|
+
|
|
26
|
+
/** @internal */
|
|
27
|
+
export const tag = Context.Tag<Client.Client.Default>(TypeId)
|
|
25
28
|
|
|
26
29
|
const clientProto = {
|
|
30
|
+
[TypeId]: TypeId,
|
|
27
31
|
pipe() {
|
|
28
32
|
return pipeArguments(this, arguments)
|
|
29
33
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as Context from "@effect/data/Context"
|
|
2
|
+
import type * as Etag from "@effect/platform/Http/Etag"
|
|
3
|
+
|
|
4
|
+
/** @internal */
|
|
5
|
+
export const GeneratorTypeId: Etag.GeneratorTypeId = Symbol.for(
|
|
6
|
+
"@effect/platform/Http/Etag/Generator"
|
|
7
|
+
) as Etag.GeneratorTypeId
|
|
8
|
+
|
|
9
|
+
/** @internal */
|
|
10
|
+
export const tag = Context.Tag<Etag.Generator>(GeneratorTypeId)
|
|
11
|
+
|
|
12
|
+
/** @internal */
|
|
13
|
+
export const toString = (self: Etag.Etag): string => {
|
|
14
|
+
switch (self._tag) {
|
|
15
|
+
case "Weak":
|
|
16
|
+
return `W/"${self.value}"`
|
|
17
|
+
case "Strong":
|
|
18
|
+
return `"${self.value}"`
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -305,7 +305,7 @@ export const head = route("HEAD")
|
|
|
305
305
|
export const options = route("OPTIONS")
|
|
306
306
|
|
|
307
307
|
/** @internal */
|
|
308
|
-
export const
|
|
308
|
+
export const use = dual<
|
|
309
309
|
<R, E, R1, E1>(
|
|
310
310
|
f: (self: Router.Route.Handler<R, E>) => Router.Route.Handler<R1, E1>
|
|
311
311
|
) => (self: Router.Router<R, E>) => Router.Router<R1, E1>,
|
|
@@ -334,7 +334,7 @@ export const catchAll = dual<
|
|
|
334
334
|
self: Router.Router<R, E>,
|
|
335
335
|
f: (e: E) => Router.Route.Handler<R2, E2>
|
|
336
336
|
) => Router.Router<R2 | R, E2>
|
|
337
|
-
>(2, (self, f) =>
|
|
337
|
+
>(2, (self, f) => use(self, Effect.catchAll(f)))
|
|
338
338
|
|
|
339
339
|
/** @internal */
|
|
340
340
|
export const catchAllCause = dual<
|
|
@@ -345,7 +345,7 @@ export const catchAllCause = dual<
|
|
|
345
345
|
self: Router.Router<R, E>,
|
|
346
346
|
f: (e: Cause.Cause<E>) => Router.Route.Handler<R2, E2>
|
|
347
347
|
) => Router.Router<R2 | R, E2>
|
|
348
|
-
>(2, (self, f) =>
|
|
348
|
+
>(2, (self, f) => use(self, Effect.catchAllCause(f)))
|
|
349
349
|
|
|
350
350
|
/** @internal */
|
|
351
351
|
export const catchTag = dual<
|
|
@@ -358,7 +358,7 @@ export const catchTag = dual<
|
|
|
358
358
|
k: K,
|
|
359
359
|
f: (e: Extract<E, { _tag: K }>) => Router.Route.Handler<R1, E1>
|
|
360
360
|
) => Router.Router<R | R1, Exclude<E, { _tag: K }> | E1>
|
|
361
|
-
>(3, (self, k, f) =>
|
|
361
|
+
>(3, (self, k, f) => use(self, Effect.catchTag(k, f)))
|
|
362
362
|
|
|
363
363
|
/** @internal */
|
|
364
364
|
export const catchTags: {
|
|
@@ -400,7 +400,7 @@ export const catchTags: {
|
|
|
400
400
|
[K in keyof Cases]: Cases[K] extends ((...args: Array<any>) => Effect.Effect<any, infer E, any>) ? E : never
|
|
401
401
|
}[keyof Cases]
|
|
402
402
|
>
|
|
403
|
-
} = dual(2, (self: Router.Router<any, any>, cases: {}) =>
|
|
403
|
+
} = dual(2, (self: Router.Router<any, any>, cases: {}) => use(self, Effect.catchTags(cases)))
|
|
404
404
|
|
|
405
405
|
export const provideService = dual<
|
|
406
406
|
<T extends Context.Tag<any, any>>(
|
|
@@ -412,7 +412,7 @@ export const provideService = dual<
|
|
|
412
412
|
tag: T,
|
|
413
413
|
service: Context.Tag.Service<T>
|
|
414
414
|
) => Router.Router<Exclude<R, Context.Tag.Identifier<T>>, E>
|
|
415
|
-
>(3, (self, tag, service) =>
|
|
415
|
+
>(3, (self, tag, service) => use(self, Effect.provideService(tag, service)))
|
|
416
416
|
|
|
417
417
|
/* @internal */
|
|
418
418
|
export const provideServiceEffect = dual<
|
|
@@ -429,4 +429,4 @@ export const provideServiceEffect = dual<
|
|
|
429
429
|
self: Router.Router<R, E>,
|
|
430
430
|
tag: T,
|
|
431
431
|
effect: Effect.Effect<R1, E1, Context.Tag.Service<T>>
|
|
432
|
-
) =>
|
|
432
|
+
) => use(self, Effect.provideServiceEffect(tag, effect)))
|
|
@@ -12,7 +12,7 @@ import type * as ServerRequest from "@effect/platform/Http/ServerRequest"
|
|
|
12
12
|
export const TypeId: Server.TypeId = Symbol.for("@effect/platform/Http/Server") as Server.TypeId
|
|
13
13
|
|
|
14
14
|
/** @internal */
|
|
15
|
-
export const serverTag = Context.Tag<Server.Server>(
|
|
15
|
+
export const serverTag = Context.Tag<Server.Server>(TypeId)
|
|
16
16
|
|
|
17
17
|
const serverProto = {
|
|
18
18
|
[TypeId]: TypeId
|