@effect/platform 0.58.9 → 0.58.10
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/HttpServerRespondable/package.json +6 -0
- package/dist/cjs/HttpApp.js +10 -3
- package/dist/cjs/HttpApp.js.map +1 -1
- package/dist/cjs/HttpClientResponse.js +11 -1
- package/dist/cjs/HttpClientResponse.js.map +1 -1
- package/dist/cjs/HttpRouter.js +7 -1
- package/dist/cjs/HttpRouter.js.map +1 -1
- package/dist/cjs/HttpServerError.js +32 -2
- package/dist/cjs/HttpServerError.js.map +1 -1
- package/dist/cjs/HttpServerRespondable.js +88 -0
- package/dist/cjs/HttpServerRespondable.js.map +1 -0
- package/dist/cjs/HttpServerResponse.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/internal/httpClientResponse.js +20 -1
- package/dist/cjs/internal/httpClientResponse.js.map +1 -1
- package/dist/cjs/internal/httpMiddleware.js +13 -14
- package/dist/cjs/internal/httpMiddleware.js.map +1 -1
- package/dist/cjs/internal/httpRouter.js +4 -2
- package/dist/cjs/internal/httpRouter.js.map +1 -1
- package/dist/cjs/internal/httpServerError.js +28 -3
- package/dist/cjs/internal/httpServerError.js.map +1 -1
- package/dist/cjs/internal/httpServerResponse.js +4 -0
- package/dist/cjs/internal/httpServerResponse.js.map +1 -1
- package/dist/cjs/internal/path.js +3 -3
- package/dist/cjs/internal/path.js.map +1 -1
- package/dist/dts/Cookies.d.ts.map +1 -1
- package/dist/dts/Error.d.ts.map +1 -1
- package/dist/dts/FileSystem.d.ts.map +1 -1
- package/dist/dts/Headers.d.ts.map +1 -1
- package/dist/dts/HttpApp.d.ts +1 -1
- package/dist/dts/HttpApp.d.ts.map +1 -1
- package/dist/dts/HttpBody.d.ts.map +1 -1
- package/dist/dts/HttpClientResponse.d.ts +44 -0
- package/dist/dts/HttpClientResponse.d.ts.map +1 -1
- package/dist/dts/HttpIncomingMessage.d.ts +1 -1
- package/dist/dts/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/dts/HttpRouter.d.ts +13 -4
- package/dist/dts/HttpRouter.d.ts.map +1 -1
- package/dist/dts/HttpServerError.d.ts +22 -3
- package/dist/dts/HttpServerError.d.ts.map +1 -1
- package/dist/dts/HttpServerRespondable.d.ts +35 -0
- package/dist/dts/HttpServerRespondable.d.ts.map +1 -0
- package/dist/dts/HttpServerResponse.d.ts +2 -1
- package/dist/dts/HttpServerResponse.d.ts.map +1 -1
- package/dist/dts/HttpTraceContext.d.ts.map +1 -1
- package/dist/dts/PlatformConfigProvider.d.ts.map +1 -1
- package/dist/dts/Socket.d.ts.map +1 -1
- package/dist/dts/Transferable.d.ts.map +1 -1
- package/dist/dts/UrlParams.d.ts.map +1 -1
- package/dist/dts/WorkerError.d.ts.map +1 -1
- package/dist/dts/index.d.ts +4 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/httpRouter.d.ts +1 -1
- package/dist/dts/internal/httpRouter.d.ts.map +1 -1
- package/dist/esm/HttpApp.js +10 -3
- package/dist/esm/HttpApp.js.map +1 -1
- package/dist/esm/HttpClientResponse.js +10 -0
- package/dist/esm/HttpClientResponse.js.map +1 -1
- package/dist/esm/HttpRouter.js +5 -0
- package/dist/esm/HttpRouter.js.map +1 -1
- package/dist/esm/HttpServerError.js +31 -1
- package/dist/esm/HttpServerError.js.map +1 -1
- package/dist/esm/HttpServerRespondable.js +52 -0
- package/dist/esm/HttpServerRespondable.js.map +1 -0
- package/dist/esm/HttpServerResponse.js.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/httpClientResponse.js +19 -0
- package/dist/esm/internal/httpClientResponse.js.map +1 -1
- package/dist/esm/internal/httpMiddleware.js +13 -14
- package/dist/esm/internal/httpMiddleware.js.map +1 -1
- package/dist/esm/internal/httpRouter.js +4 -2
- package/dist/esm/internal/httpRouter.js.map +1 -1
- package/dist/esm/internal/httpServerError.js +25 -1
- package/dist/esm/internal/httpServerError.js.map +1 -1
- package/dist/esm/internal/httpServerResponse.js +4 -0
- package/dist/esm/internal/httpServerResponse.js.map +1 -1
- package/package.json +11 -3
- package/src/HttpApp.ts +14 -3
- package/src/HttpClientResponse.ts +77 -0
- package/src/HttpRouter.ts +15 -4
- package/src/HttpServerError.ts +37 -5
- package/src/HttpServerRespondable.ts +66 -0
- package/src/HttpServerResponse.ts +2 -1
- package/src/index.ts +5 -0
- package/src/internal/httpClientResponse.ts +82 -0
- package/src/internal/httpMiddleware.ts +19 -19
- package/src/internal/httpRouter.ts +9 -7
- package/src/internal/httpServerError.ts +35 -6
- package/src/internal/httpServerResponse.ts +9 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpServerResponse.js","names":["Effect","Effectable","dual","Inspectable","Stream","Cookies","Headers","Platform","Template","UrlParams","internalBody","TypeId","Symbol","for","ServerResponseImpl","StructuralClass","status","statusText","cookies","body","headers","constructor","contentType","contentLength","newHeaders","toString","commit","succeed","NodeInspectSymbol","toJSON","format","_id","isServerResponse","u","empty","options","uint8Array","getContentType","text","html","strings","args","map","make","_","htmlStream","context","stream","provideContext","encodeText","json","unsafeJson","schemaJson","schema","encode","jsonSchema","file","path","flatMap","HttpPlatform","platform","fileResponse","fileWeb","fileWebResponse","urlParams","fromInput","raw","formData","setHeader","self","key","value","set","replaceCookies","setCookie","name","unsafeSetCookie","unsafeSet","updateCookies","f","setCookies","setAll","unsafeSetCookies","unsafeSetAll","removeCookie","remove","setHeaders","input","setStatus","setBody","_tag","toWeb","response","withoutBody","globalThis","isEmpty","toAdd","toSetCookieHeaders","header","append","Response","undefined","toReadableStream"],"sources":["../../../src/internal/httpServerResponse.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"httpServerResponse.js","names":["Effect","Effectable","dual","Inspectable","Stream","Cookies","Headers","Platform","Template","UrlParams","internalBody","TypeId","Symbol","for","respondableSymbol","ServerResponseImpl","StructuralClass","status","statusText","cookies","body","headers","constructor","contentType","contentLength","newHeaders","toString","commit","succeed","NodeInspectSymbol","toJSON","format","_id","isServerResponse","u","empty","options","uint8Array","getContentType","text","html","strings","args","map","make","_","htmlStream","context","stream","provideContext","encodeText","json","unsafeJson","schemaJson","schema","encode","jsonSchema","file","path","flatMap","HttpPlatform","platform","fileResponse","fileWeb","fileWebResponse","urlParams","fromInput","raw","formData","setHeader","self","key","value","set","replaceCookies","setCookie","name","unsafeSetCookie","unsafeSet","updateCookies","f","setCookies","setAll","unsafeSetCookies","unsafeSetAll","removeCookie","remove","setHeaders","input","setStatus","setBody","_tag","toWeb","response","withoutBody","globalThis","isEmpty","toAdd","toSetCookieHeaders","header","append","Response","undefined","toReadableStream"],"sources":["../../../src/internal/httpServerResponse.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/platform",
|
|
3
|
-
"version": "0.58.
|
|
3
|
+
"version": "0.58.10",
|
|
4
4
|
"description": "Unified interfaces for common platform-specific services",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"path-browserify": "^1.0.1"
|
|
16
16
|
},
|
|
17
17
|
"peerDependencies": {
|
|
18
|
-
"@effect/schema": "^0.68.
|
|
19
|
-
"effect": "^3.4.
|
|
18
|
+
"@effect/schema": "^0.68.10",
|
|
19
|
+
"effect": "^3.4.3"
|
|
20
20
|
},
|
|
21
21
|
"publishConfig": {
|
|
22
22
|
"provenance": true
|
|
@@ -146,6 +146,11 @@
|
|
|
146
146
|
"import": "./dist/esm/HttpServerRequest.js",
|
|
147
147
|
"default": "./dist/cjs/HttpServerRequest.js"
|
|
148
148
|
},
|
|
149
|
+
"./HttpServerRespondable": {
|
|
150
|
+
"types": "./dist/dts/HttpServerRespondable.d.ts",
|
|
151
|
+
"import": "./dist/esm/HttpServerRespondable.js",
|
|
152
|
+
"default": "./dist/cjs/HttpServerRespondable.js"
|
|
153
|
+
},
|
|
149
154
|
"./HttpServerResponse": {
|
|
150
155
|
"types": "./dist/dts/HttpServerResponse.d.ts",
|
|
151
156
|
"import": "./dist/esm/HttpServerResponse.js",
|
|
@@ -298,6 +303,9 @@
|
|
|
298
303
|
"HttpServerRequest": [
|
|
299
304
|
"./dist/dts/HttpServerRequest.d.ts"
|
|
300
305
|
],
|
|
306
|
+
"HttpServerRespondable": [
|
|
307
|
+
"./dist/dts/HttpServerRespondable.d.ts"
|
|
308
|
+
],
|
|
301
309
|
"HttpServerResponse": [
|
|
302
310
|
"./dist/dts/HttpServerResponse.d.ts"
|
|
303
311
|
],
|
package/src/HttpApp.ts
CHANGED
|
@@ -15,6 +15,7 @@ import * as Scope from "effect/Scope"
|
|
|
15
15
|
import type { HttpMiddleware } from "./HttpMiddleware.js"
|
|
16
16
|
import * as ServerError from "./HttpServerError.js"
|
|
17
17
|
import * as ServerRequest from "./HttpServerRequest.js"
|
|
18
|
+
import * as Respondable from "./HttpServerRespondable.js"
|
|
18
19
|
import * as ServerResponse from "./HttpServerResponse.js"
|
|
19
20
|
import * as internalMiddleware from "./internal/httpMiddleware.js"
|
|
20
21
|
|
|
@@ -58,9 +59,19 @@ export const toHandled = <E, R, _, RH>(
|
|
|
58
59
|
Effect.exit(preHandled),
|
|
59
60
|
(exit) => {
|
|
60
61
|
if (exit._tag === "Failure") {
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
const cause = exit.cause
|
|
63
|
+
const thing = Cause.squash(exit.cause)
|
|
64
|
+
if (ServerResponse.isServerResponse(thing)) {
|
|
65
|
+
exit = Exit.succeed(thing)
|
|
66
|
+
} else {
|
|
67
|
+
return Effect.matchCauseEffect(Respondable.toResponseError(thing), {
|
|
68
|
+
onFailure: (_) => Effect.zipRight(handleResponse(request, exit), exit),
|
|
69
|
+
onSuccess: (response) =>
|
|
70
|
+
Effect.zipRight(
|
|
71
|
+
handleResponse(request, Exit.succeed(response)),
|
|
72
|
+
Effect.failCause(Cause.sequential(cause, Cause.die(response)))
|
|
73
|
+
)
|
|
74
|
+
})
|
|
64
75
|
}
|
|
65
76
|
}
|
|
66
77
|
return Effect.zipRight(handleResponse(request, exit), exit)
|
|
@@ -211,3 +211,80 @@ export const schemaNoBodyScoped: <
|
|
|
211
211
|
effect: Effect.Effect<HttpClientResponse, E, R2>
|
|
212
212
|
) => Effect.Effect<A, E | ParseResult.ParseError, Exclude<R, Scope.Scope> | Exclude<R2, Scope.Scope>> =
|
|
213
213
|
internal.schemaNoBodyScoped
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* @since 1.0.0
|
|
217
|
+
* @category pattern matching
|
|
218
|
+
*/
|
|
219
|
+
export const matchStatus: {
|
|
220
|
+
<
|
|
221
|
+
const Cases extends {
|
|
222
|
+
readonly [status: number]: (_: HttpClientResponse) => any
|
|
223
|
+
readonly "2xx"?: (_: HttpClientResponse) => any
|
|
224
|
+
readonly "3xx"?: (_: HttpClientResponse) => any
|
|
225
|
+
readonly "4xx"?: (_: HttpClientResponse) => any
|
|
226
|
+
readonly "5xx"?: (_: HttpClientResponse) => any
|
|
227
|
+
readonly orElse: (_: HttpClientResponse) => any
|
|
228
|
+
}
|
|
229
|
+
>(cases: Cases): (self: HttpClientResponse) => Cases[keyof Cases] extends (_: any) => infer R ? R : never
|
|
230
|
+
<
|
|
231
|
+
const Cases extends {
|
|
232
|
+
readonly [status: number]: (_: HttpClientResponse) => any
|
|
233
|
+
readonly "2xx"?: (_: HttpClientResponse) => any
|
|
234
|
+
readonly "3xx"?: (_: HttpClientResponse) => any
|
|
235
|
+
readonly "4xx"?: (_: HttpClientResponse) => any
|
|
236
|
+
readonly "5xx"?: (_: HttpClientResponse) => any
|
|
237
|
+
readonly orElse: (_: HttpClientResponse) => any
|
|
238
|
+
}
|
|
239
|
+
>(self: HttpClientResponse, cases: Cases): Cases[keyof Cases] extends (_: any) => infer R ? R : never
|
|
240
|
+
} = internal.matchStatus
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* @since 1.0.0
|
|
244
|
+
* @category pattern matching
|
|
245
|
+
*/
|
|
246
|
+
export const matchStatusScoped: {
|
|
247
|
+
<
|
|
248
|
+
const Cases extends {
|
|
249
|
+
readonly [status: number]: (_: HttpClientResponse) => Effect.Effect<any, any, any>
|
|
250
|
+
readonly "2xx"?: (_: HttpClientResponse) => Effect.Effect<any, any, any>
|
|
251
|
+
readonly "3xx"?: (_: HttpClientResponse) => Effect.Effect<any, any, any>
|
|
252
|
+
readonly "4xx"?: (_: HttpClientResponse) => Effect.Effect<any, any, any>
|
|
253
|
+
readonly "5xx"?: (_: HttpClientResponse) => Effect.Effect<any, any, any>
|
|
254
|
+
readonly orElse: (_: HttpClientResponse) => Effect.Effect<any, any, any>
|
|
255
|
+
}
|
|
256
|
+
>(
|
|
257
|
+
cases: Cases
|
|
258
|
+
): <E, R>(
|
|
259
|
+
self: Effect.Effect<HttpClientResponse, E, R>
|
|
260
|
+
) => Effect.Effect<
|
|
261
|
+
Cases[keyof Cases] extends (_: any) => Effect.Effect<infer _A, infer _E, infer _R> ? _A : never,
|
|
262
|
+
E | (Cases[keyof Cases] extends (_: any) => Effect.Effect<infer _A, infer _E, infer _R> ? _E : never),
|
|
263
|
+
Exclude<
|
|
264
|
+
R | (Cases[keyof Cases] extends (_: any) => Effect.Effect<infer _A, infer _E, infer _R> ? _R : never),
|
|
265
|
+
Scope.Scope
|
|
266
|
+
>
|
|
267
|
+
>
|
|
268
|
+
<
|
|
269
|
+
E,
|
|
270
|
+
R,
|
|
271
|
+
const Cases extends {
|
|
272
|
+
readonly [status: number]: (_: HttpClientResponse) => Effect.Effect<any, any, any>
|
|
273
|
+
readonly "2xx"?: (_: HttpClientResponse) => Effect.Effect<any, any, any>
|
|
274
|
+
readonly "3xx"?: (_: HttpClientResponse) => Effect.Effect<any, any, any>
|
|
275
|
+
readonly "4xx"?: (_: HttpClientResponse) => Effect.Effect<any, any, any>
|
|
276
|
+
readonly "5xx"?: (_: HttpClientResponse) => Effect.Effect<any, any, any>
|
|
277
|
+
readonly orElse: (_: HttpClientResponse) => Effect.Effect<any, any, any>
|
|
278
|
+
}
|
|
279
|
+
>(
|
|
280
|
+
self: Effect.Effect<HttpClientResponse, E, R>,
|
|
281
|
+
cases: Cases
|
|
282
|
+
): Effect.Effect<
|
|
283
|
+
Cases[keyof Cases] extends (_: any) => Effect.Effect<infer _A, infer _E, infer _R> ? _A : never,
|
|
284
|
+
E | (Cases[keyof Cases] extends (_: any) => Effect.Effect<infer _A, infer _E, infer _R> ? _E : never),
|
|
285
|
+
Exclude<
|
|
286
|
+
R | (Cases[keyof Cases] extends (_: any) => Effect.Effect<infer _A, infer _E, infer _R> ? _R : never),
|
|
287
|
+
Scope.Scope
|
|
288
|
+
>
|
|
289
|
+
>
|
|
290
|
+
} = internal.matchStatusScoped
|
package/src/HttpRouter.ts
CHANGED
|
@@ -16,6 +16,7 @@ import type * as App from "./HttpApp.js"
|
|
|
16
16
|
import type * as Method from "./HttpMethod.js"
|
|
17
17
|
import type * as Error from "./HttpServerError.js"
|
|
18
18
|
import type * as ServerRequest from "./HttpServerRequest.js"
|
|
19
|
+
import type * as Respondable from "./HttpServerRespondable.js"
|
|
19
20
|
import * as internal from "./internal/httpRouter.js"
|
|
20
21
|
|
|
21
22
|
/**
|
|
@@ -42,7 +43,7 @@ export interface HttpRouter<E = never, R = never>
|
|
|
42
43
|
readonly mounts: Chunk.Chunk<
|
|
43
44
|
readonly [
|
|
44
45
|
prefix: string,
|
|
45
|
-
httpApp: App.
|
|
46
|
+
httpApp: App.HttpApp<Respondable.Respondable, E, R>,
|
|
46
47
|
options?: { readonly includePrefix?: boolean | undefined } | undefined
|
|
47
48
|
]
|
|
48
49
|
>
|
|
@@ -116,7 +117,7 @@ export declare namespace HttpRouter {
|
|
|
116
117
|
* @since 1.0.0
|
|
117
118
|
*/
|
|
118
119
|
export interface TagClass<Self, Name extends string, E, R> extends Context.Tag<Self, Service<E, R>> {
|
|
119
|
-
new(_: never): Context.TagClassShape
|
|
120
|
+
new(_: never): Context.TagClassShape<Name, Service<E, R>>
|
|
120
121
|
readonly Live: Layer.Layer<Self>
|
|
121
122
|
readonly router: Effect.Effect<HttpRouter<E, R>, never, Self>
|
|
122
123
|
readonly use: <XA, XE, XR>(f: (router: Service<E, R>) => Effect.Effect<XA, XE, XR>) => Layer.Layer<never, XE, XR>
|
|
@@ -165,7 +166,11 @@ export declare namespace Route {
|
|
|
165
166
|
/**
|
|
166
167
|
* @since 1.0.0
|
|
167
168
|
*/
|
|
168
|
-
export type Handler<E, R> = App.
|
|
169
|
+
export type Handler<E, R> = App.HttpApp<
|
|
170
|
+
Respondable.Respondable,
|
|
171
|
+
E,
|
|
172
|
+
R | RouteContext | ServerRequest.ParsedSearchParams
|
|
173
|
+
>
|
|
169
174
|
}
|
|
170
175
|
|
|
171
176
|
/**
|
|
@@ -729,4 +734,10 @@ export const provideServiceEffect: {
|
|
|
729
734
|
*/
|
|
730
735
|
export const Tag: <const Name extends string>(
|
|
731
736
|
id: Name
|
|
732
|
-
) => <Self,
|
|
737
|
+
) => <Self, R = never, E = unknown>() => HttpRouter.TagClass<Self, Name, E, R> = internal.Tag
|
|
738
|
+
|
|
739
|
+
/**
|
|
740
|
+
* @since 1.0.0
|
|
741
|
+
* @category tags
|
|
742
|
+
*/
|
|
743
|
+
export class Default extends Tag("@effect/platform/HttpRouter/Default")<Default>() {}
|
package/src/HttpServerError.ts
CHANGED
|
@@ -2,10 +2,13 @@
|
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
4
|
import type * as Cause from "effect/Cause"
|
|
5
|
+
import type * as Exit from "effect/Exit"
|
|
5
6
|
import type * as FiberId from "effect/FiberId"
|
|
7
|
+
import type * as Option from "effect/Option"
|
|
6
8
|
import { RefailError, TypeIdError } from "./Error.js"
|
|
7
9
|
import type * as ServerRequest from "./HttpServerRequest.js"
|
|
8
|
-
import
|
|
10
|
+
import * as Respondable from "./HttpServerRespondable.js"
|
|
11
|
+
import * as ServerResponse from "./HttpServerResponse.js"
|
|
9
12
|
import * as internal from "./internal/httpServerError.js"
|
|
10
13
|
|
|
11
14
|
/**
|
|
@@ -33,7 +36,14 @@ export type HttpServerError = RequestError | ResponseError | RouteNotFound | Ser
|
|
|
33
36
|
export class RequestError extends RefailError(TypeId, "RequestError")<{
|
|
34
37
|
readonly request: ServerRequest.HttpServerRequest
|
|
35
38
|
readonly reason: "Transport" | "Decode"
|
|
36
|
-
}> {
|
|
39
|
+
}> implements Respondable.Respondable {
|
|
40
|
+
/**
|
|
41
|
+
* @since 1.0.0
|
|
42
|
+
*/
|
|
43
|
+
[Respondable.symbol]() {
|
|
44
|
+
return ServerResponse.empty({ status: 400 })
|
|
45
|
+
}
|
|
46
|
+
|
|
37
47
|
get methodAndUrl() {
|
|
38
48
|
return `${this.request.method} ${this.request.url}`
|
|
39
49
|
}
|
|
@@ -56,6 +66,13 @@ export const isServerError: (u: unknown) => u is HttpServerError = internal.isSe
|
|
|
56
66
|
export class RouteNotFound extends TypeIdError(TypeId, "RouteNotFound")<{
|
|
57
67
|
readonly request: ServerRequest.HttpServerRequest
|
|
58
68
|
}> {
|
|
69
|
+
/**
|
|
70
|
+
* @since 1.0.0
|
|
71
|
+
*/
|
|
72
|
+
[Respondable.symbol]() {
|
|
73
|
+
return ServerResponse.empty({ status: 404 })
|
|
74
|
+
}
|
|
75
|
+
|
|
59
76
|
get message() {
|
|
60
77
|
return `${this.request.method} ${this.request.url} not found`
|
|
61
78
|
}
|
|
@@ -70,6 +87,13 @@ export class ResponseError extends RefailError(TypeId, "ResponseError")<{
|
|
|
70
87
|
readonly response: ServerResponse.HttpServerResponse
|
|
71
88
|
readonly reason: "Decode"
|
|
72
89
|
}> {
|
|
90
|
+
/**
|
|
91
|
+
* @since 1.0.0
|
|
92
|
+
*/
|
|
93
|
+
[Respondable.symbol]() {
|
|
94
|
+
return ServerResponse.empty({ status: 500 })
|
|
95
|
+
}
|
|
96
|
+
|
|
73
97
|
get methodAndUrl() {
|
|
74
98
|
return `${this.request.method} ${this.request.url}`
|
|
75
99
|
}
|
|
@@ -83,8 +107,7 @@ export class ResponseError extends RefailError(TypeId, "ResponseError")<{
|
|
|
83
107
|
* @since 1.0.0
|
|
84
108
|
* @category error
|
|
85
109
|
*/
|
|
86
|
-
export class ServeError extends RefailError(TypeId, "ServeError")<{}> {
|
|
87
|
-
}
|
|
110
|
+
export class ServeError extends RefailError(TypeId, "ServeError")<{}> {}
|
|
88
111
|
|
|
89
112
|
/**
|
|
90
113
|
* @since 1.0.0
|
|
@@ -99,4 +122,13 @@ export const isClientAbortCause: <E>(cause: Cause.Cause<E>) => boolean = interna
|
|
|
99
122
|
/**
|
|
100
123
|
* @since 1.0.0
|
|
101
124
|
*/
|
|
102
|
-
export const
|
|
125
|
+
export const causeStatusStripped: <E>(
|
|
126
|
+
cause: Cause.Cause<E>
|
|
127
|
+
) => readonly [status: number, cause: Option.Option<Cause.Cause<E>>] = internal.causeStatusStripped
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* @since 1.0.0
|
|
131
|
+
*/
|
|
132
|
+
export const exitResponse: <E>(
|
|
133
|
+
exit: Exit.Exit<ServerResponse.HttpServerResponse, E>
|
|
134
|
+
) => ServerResponse.HttpServerResponse = internal.exitResponse
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import * as ParseResult from "@effect/schema/ParseResult"
|
|
5
|
+
import * as Effect from "effect/Effect"
|
|
6
|
+
import { hasProperty } from "effect/Predicate"
|
|
7
|
+
import type { HttpServerResponse } from "./HttpServerResponse.js"
|
|
8
|
+
import * as ServerResponse from "./HttpServerResponse.js"
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @since 1.0.0
|
|
12
|
+
* @category symbols
|
|
13
|
+
*/
|
|
14
|
+
export const symbol: unique symbol = Symbol.for("@effect/platform/HttpServerRespondable")
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @since 1.0.0
|
|
18
|
+
* @category models
|
|
19
|
+
*/
|
|
20
|
+
export interface Respondable {
|
|
21
|
+
readonly [symbol]: () => Effect.Effect<HttpServerResponse, unknown>
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @since 1.0.0
|
|
26
|
+
* @category guards
|
|
27
|
+
*/
|
|
28
|
+
export const isRespondable = (u: unknown): u is Respondable => hasProperty(u, symbol)
|
|
29
|
+
|
|
30
|
+
const badRequest = ServerResponse.empty({ status: 400 })
|
|
31
|
+
const internalServerError = () => ServerResponse.empty({ status: 500 })
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @since 1.0.0
|
|
35
|
+
* @category accessors
|
|
36
|
+
*/
|
|
37
|
+
export const toResponse = (self: Respondable): Effect.Effect<HttpServerResponse> => {
|
|
38
|
+
if (ServerResponse.isServerResponse(self)) {
|
|
39
|
+
return Effect.succeed(self)
|
|
40
|
+
}
|
|
41
|
+
return Effect.orDie(self[symbol]())
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* @since 1.0.0
|
|
46
|
+
* @category accessors
|
|
47
|
+
*/
|
|
48
|
+
export const toResponseOrElse = (
|
|
49
|
+
u: unknown,
|
|
50
|
+
orElse: () => Effect.Effect<HttpServerResponse, unknown>
|
|
51
|
+
): Effect.Effect<HttpServerResponse, unknown> => {
|
|
52
|
+
if (isRespondable(u)) {
|
|
53
|
+
return u[symbol]()
|
|
54
|
+
// add support for some commmon types
|
|
55
|
+
} else if (ParseResult.isParseError(u)) {
|
|
56
|
+
return Effect.succeed(badRequest)
|
|
57
|
+
}
|
|
58
|
+
return orElse()
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @since 1.0.0
|
|
63
|
+
* @category accessors
|
|
64
|
+
*/
|
|
65
|
+
export const toResponseError = (u: unknown): Effect.Effect<HttpServerResponse, unknown> =>
|
|
66
|
+
toResponseOrElse(u, internalServerError)
|
|
@@ -12,6 +12,7 @@ import type * as FileSystem from "./FileSystem.js"
|
|
|
12
12
|
import type * as Headers from "./Headers.js"
|
|
13
13
|
import type * as Body from "./HttpBody.js"
|
|
14
14
|
import type * as Platform from "./HttpPlatform.js"
|
|
15
|
+
import type { Respondable } from "./HttpServerRespondable.js"
|
|
15
16
|
import * as internal from "./internal/httpServerResponse.js"
|
|
16
17
|
import type * as Template from "./Template.js"
|
|
17
18
|
import type * as UrlParams from "./UrlParams.js"
|
|
@@ -32,7 +33,7 @@ export type TypeId = typeof TypeId
|
|
|
32
33
|
* @since 1.0.0
|
|
33
34
|
* @category models
|
|
34
35
|
*/
|
|
35
|
-
export interface HttpServerResponse extends Effect.Effect<HttpServerResponse>, Inspectable {
|
|
36
|
+
export interface HttpServerResponse extends Effect.Effect<HttpServerResponse>, Inspectable, Respondable {
|
|
36
37
|
readonly [TypeId]: TypeId
|
|
37
38
|
readonly status: number
|
|
38
39
|
readonly statusText?: string | undefined
|
package/src/index.ts
CHANGED
|
@@ -114,6 +114,11 @@ export * as HttpServerError from "./HttpServerError.js"
|
|
|
114
114
|
*/
|
|
115
115
|
export * as HttpServerRequest from "./HttpServerRequest.js"
|
|
116
116
|
|
|
117
|
+
/**
|
|
118
|
+
* @since 1.0.0
|
|
119
|
+
*/
|
|
120
|
+
export * as HttpServerRespondable from "./HttpServerRespondable.js"
|
|
121
|
+
|
|
117
122
|
/**
|
|
118
123
|
* @since 1.0.0
|
|
119
124
|
*/
|
|
@@ -2,8 +2,10 @@ import type { ParseOptions } from "@effect/schema/AST"
|
|
|
2
2
|
import type * as ParseResult from "@effect/schema/ParseResult"
|
|
3
3
|
import * as Schema from "@effect/schema/Schema"
|
|
4
4
|
import * as Effect from "effect/Effect"
|
|
5
|
+
import { dual } from "effect/Function"
|
|
5
6
|
import * as Inspectable from "effect/Inspectable"
|
|
6
7
|
import * as Option from "effect/Option"
|
|
8
|
+
import type { Scope } from "effect/Scope"
|
|
7
9
|
import * as Stream from "effect/Stream"
|
|
8
10
|
import * as Cookies from "../Cookies.js"
|
|
9
11
|
import * as Headers from "../Headers.js"
|
|
@@ -248,3 +250,83 @@ export const schemaNoBodyScoped = <
|
|
|
248
250
|
return <E, R2>(effect: Effect.Effect<ClientResponse.HttpClientResponse, E, R2>) =>
|
|
249
251
|
Effect.scoped(Effect.flatMap(effect, decode))
|
|
250
252
|
}
|
|
253
|
+
|
|
254
|
+
/** @internal */
|
|
255
|
+
export const matchStatus = dual<
|
|
256
|
+
<
|
|
257
|
+
const Cases extends {
|
|
258
|
+
readonly [status: number]: (_: ClientResponse.HttpClientResponse) => any
|
|
259
|
+
readonly "2xx"?: (_: ClientResponse.HttpClientResponse) => any
|
|
260
|
+
readonly "3xx"?: (_: ClientResponse.HttpClientResponse) => any
|
|
261
|
+
readonly "4xx"?: (_: ClientResponse.HttpClientResponse) => any
|
|
262
|
+
readonly "5xx"?: (_: ClientResponse.HttpClientResponse) => any
|
|
263
|
+
readonly orElse: (_: ClientResponse.HttpClientResponse) => any
|
|
264
|
+
}
|
|
265
|
+
>(
|
|
266
|
+
cases: Cases
|
|
267
|
+
) => (self: ClientResponse.HttpClientResponse) => Cases[keyof Cases] extends (_: any) => infer R ? R : never,
|
|
268
|
+
<
|
|
269
|
+
const Cases extends {
|
|
270
|
+
readonly [status: number]: (_: ClientResponse.HttpClientResponse) => any
|
|
271
|
+
readonly "2xx"?: (_: ClientResponse.HttpClientResponse) => any
|
|
272
|
+
readonly "3xx"?: (_: ClientResponse.HttpClientResponse) => any
|
|
273
|
+
readonly "4xx"?: (_: ClientResponse.HttpClientResponse) => any
|
|
274
|
+
readonly "5xx"?: (_: ClientResponse.HttpClientResponse) => any
|
|
275
|
+
readonly orElse: (_: ClientResponse.HttpClientResponse) => any
|
|
276
|
+
}
|
|
277
|
+
>(self: ClientResponse.HttpClientResponse, cases: Cases) => Cases[keyof Cases] extends (_: any) => infer R ? R : never
|
|
278
|
+
>(2, (self, cases) => {
|
|
279
|
+
const status = self.status
|
|
280
|
+
if (cases[status]) {
|
|
281
|
+
return cases[status](self)
|
|
282
|
+
} else if (status >= 200 && status < 300 && cases["2xx"]) {
|
|
283
|
+
return cases["2xx"](self)
|
|
284
|
+
} else if (status >= 300 && status < 400 && cases["3xx"]) {
|
|
285
|
+
return cases["3xx"](self)
|
|
286
|
+
} else if (status >= 400 && status < 500 && cases["4xx"]) {
|
|
287
|
+
return cases["4xx"](self)
|
|
288
|
+
} else if (status >= 500 && status < 600 && cases["5xx"]) {
|
|
289
|
+
return cases["5xx"](self)
|
|
290
|
+
}
|
|
291
|
+
return cases.orElse(self)
|
|
292
|
+
})
|
|
293
|
+
|
|
294
|
+
/** @internal */
|
|
295
|
+
export const matchStatusScoped = dual<
|
|
296
|
+
<
|
|
297
|
+
const Cases extends {
|
|
298
|
+
readonly [status: number]: (_: ClientResponse.HttpClientResponse) => Effect.Effect<any, any, any>
|
|
299
|
+
readonly "2xx"?: (_: ClientResponse.HttpClientResponse) => Effect.Effect<any, any, any>
|
|
300
|
+
readonly "3xx"?: (_: ClientResponse.HttpClientResponse) => Effect.Effect<any, any, any>
|
|
301
|
+
readonly "4xx"?: (_: ClientResponse.HttpClientResponse) => Effect.Effect<any, any, any>
|
|
302
|
+
readonly "5xx"?: (_: ClientResponse.HttpClientResponse) => Effect.Effect<any, any, any>
|
|
303
|
+
readonly orElse: (_: ClientResponse.HttpClientResponse) => Effect.Effect<any, any, any>
|
|
304
|
+
}
|
|
305
|
+
>(cases: Cases) => <E, R>(self: Effect.Effect<ClientResponse.HttpClientResponse, E, R>) => Effect.Effect<
|
|
306
|
+
Cases[keyof Cases] extends (_: any) => Effect.Effect<infer _A, infer _E, infer _R> ? _A : never,
|
|
307
|
+
E | (Cases[keyof Cases] extends (_: any) => Effect.Effect<infer _A, infer _E, infer _R> ? _E : never),
|
|
308
|
+
Exclude<
|
|
309
|
+
R | (Cases[keyof Cases] extends (_: any) => Effect.Effect<infer _A, infer _E, infer _R> ? _R : never),
|
|
310
|
+
Scope
|
|
311
|
+
>
|
|
312
|
+
>,
|
|
313
|
+
<
|
|
314
|
+
E,
|
|
315
|
+
R,
|
|
316
|
+
const Cases extends {
|
|
317
|
+
readonly [status: number]: (_: ClientResponse.HttpClientResponse) => Effect.Effect<any, any, any>
|
|
318
|
+
readonly "2xx"?: (_: ClientResponse.HttpClientResponse) => Effect.Effect<any, any, any>
|
|
319
|
+
readonly "3xx"?: (_: ClientResponse.HttpClientResponse) => Effect.Effect<any, any, any>
|
|
320
|
+
readonly "4xx"?: (_: ClientResponse.HttpClientResponse) => Effect.Effect<any, any, any>
|
|
321
|
+
readonly "5xx"?: (_: ClientResponse.HttpClientResponse) => Effect.Effect<any, any, any>
|
|
322
|
+
readonly orElse: (_: ClientResponse.HttpClientResponse) => Effect.Effect<any, any, any>
|
|
323
|
+
}
|
|
324
|
+
>(self: Effect.Effect<ClientResponse.HttpClientResponse, E, R>, cases: Cases) => Effect.Effect<
|
|
325
|
+
Cases[keyof Cases] extends (_: any) => Effect.Effect<infer _A, infer _E, infer _R> ? _A : never,
|
|
326
|
+
E | (Cases[keyof Cases] extends (_: any) => Effect.Effect<infer _A, infer _E, infer _R> ? _E : never),
|
|
327
|
+
Exclude<
|
|
328
|
+
R | (Cases[keyof Cases] extends (_: any) => Effect.Effect<infer _A, infer _E, infer _R> ? _R : never),
|
|
329
|
+
Scope
|
|
330
|
+
>
|
|
331
|
+
>
|
|
332
|
+
>(2, (self, cases) => Effect.scoped(Effect.flatMap(self, matchStatus(cases) as any)))
|
|
@@ -82,19 +82,23 @@ export const logger = make((httpApp) => {
|
|
|
82
82
|
Effect.flatMap(Effect.exit(httpApp), (exit) => {
|
|
83
83
|
if (fiber.getFiberRef(loggerDisabled)) {
|
|
84
84
|
return exit
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
Effect.annotateLogs(Effect.log(
|
|
89
|
-
"http.method": request.method,
|
|
90
|
-
"http.url": request.url,
|
|
91
|
-
"http.status": ServerError.causeStatusCode(exit.cause)
|
|
92
|
-
}) :
|
|
93
|
-
Effect.annotateLogs(Effect.log("Sent HTTP response"), {
|
|
85
|
+
} else if (exit._tag === "Failure") {
|
|
86
|
+
const [status, cause] = ServerError.causeStatusStripped(exit.cause)
|
|
87
|
+
return Effect.zipRight(
|
|
88
|
+
Effect.annotateLogs(Effect.log(cause._tag === "Some" ? cause.value : "Sent HTTP Response"), {
|
|
94
89
|
"http.method": request.method,
|
|
95
90
|
"http.url": request.url,
|
|
96
|
-
"http.status":
|
|
91
|
+
"http.status": status
|
|
97
92
|
}),
|
|
93
|
+
exit
|
|
94
|
+
)
|
|
95
|
+
}
|
|
96
|
+
return Effect.zipRight(
|
|
97
|
+
Effect.annotateLogs(Effect.log("Sent HTTP response"), {
|
|
98
|
+
"http.method": request.method,
|
|
99
|
+
"http.url": request.url,
|
|
100
|
+
"http.status": exit.value.status
|
|
101
|
+
}),
|
|
98
102
|
exit
|
|
99
103
|
)
|
|
100
104
|
}),
|
|
@@ -156,15 +160,11 @@ export const tracer = make((httpApp) =>
|
|
|
156
160
|
return Effect.flatMap(
|
|
157
161
|
Effect.exit(Effect.withParentSpan(httpApp, span)),
|
|
158
162
|
(exit) => {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
span.attribute(
|
|
164
|
-
const redactedHeaders = Headers.redact(response.headers, redactedHeaderNames)
|
|
165
|
-
for (const name in redactedHeaders) {
|
|
166
|
-
span.attribute(`http.response.header.${name}`, String(redactedHeaders[name]))
|
|
167
|
-
}
|
|
163
|
+
const response = ServerError.exitResponse(exit)
|
|
164
|
+
span.attribute("http.response.status_code", response.status)
|
|
165
|
+
const redactedHeaders = Headers.redact(response.headers, redactedHeaderNames)
|
|
166
|
+
for (const name in redactedHeaders) {
|
|
167
|
+
span.attribute(`http.response.header.${name}`, String(redactedHeaders[name]))
|
|
168
168
|
}
|
|
169
169
|
return exit
|
|
170
170
|
}
|
|
@@ -19,6 +19,7 @@ import type * as Method from "../HttpMethod.js"
|
|
|
19
19
|
import type * as Router from "../HttpRouter.js"
|
|
20
20
|
import * as Error from "../HttpServerError.js"
|
|
21
21
|
import * as ServerRequest from "../HttpServerRequest.js"
|
|
22
|
+
import * as Respondable from "../HttpServerRespondable.js"
|
|
22
23
|
import type * as ServerResponse from "../HttpServerResponse.js"
|
|
23
24
|
|
|
24
25
|
/** @internal */
|
|
@@ -149,7 +150,7 @@ class RouterImpl<E = never, R = never> extends Effectable.StructuralClass<
|
|
|
149
150
|
readonly mounts: Chunk.Chunk<
|
|
150
151
|
readonly [
|
|
151
152
|
prefix: string,
|
|
152
|
-
httpApp: App.
|
|
153
|
+
httpApp: App.HttpApp<Respondable.Respondable, E, R>,
|
|
153
154
|
options?: { readonly includePrefix?: boolean | undefined } | undefined
|
|
154
155
|
]
|
|
155
156
|
>
|
|
@@ -225,7 +226,7 @@ const toHttpApp = <E, R>(
|
|
|
225
226
|
context.unsafeMap.set(ServerRequest.HttpServerRequest.key, sliceRequestUrl(request, path))
|
|
226
227
|
}
|
|
227
228
|
return Effect.locally(
|
|
228
|
-
routeContext.route.handler as App.Default<E, R>,
|
|
229
|
+
Effect.flatMap(routeContext.route.handler, Respondable.toResponse) as App.Default<E, R>,
|
|
229
230
|
FiberRef.currentContext,
|
|
230
231
|
context
|
|
231
232
|
)
|
|
@@ -252,10 +253,11 @@ const toHttpApp = <E, R>(
|
|
|
252
253
|
span.value.attribute("http.route", route.path)
|
|
253
254
|
}
|
|
254
255
|
|
|
256
|
+
const handlerResponse = Effect.flatMap(route.handler, Respondable.toResponse)
|
|
255
257
|
return Effect.locally(
|
|
256
258
|
(route.uninterruptible ?
|
|
257
|
-
|
|
258
|
-
Effect.interruptible(
|
|
259
|
+
handlerResponse :
|
|
260
|
+
Effect.interruptible(handlerResponse)) as Effect.Effect<
|
|
259
261
|
ServerResponse.HttpServerResponse,
|
|
260
262
|
E,
|
|
261
263
|
Router.HttpRouter.ExcludeProvided<R>
|
|
@@ -505,11 +507,11 @@ export const options = route("OPTIONS")
|
|
|
505
507
|
/** @internal */
|
|
506
508
|
export const use = dual<
|
|
507
509
|
<E, R, R1, E1>(
|
|
508
|
-
f: (self: Router.Route.Handler<E, R>) => App.
|
|
510
|
+
f: (self: Router.Route.Handler<E, R>) => App.HttpApp<Respondable.Respondable, E1, R1>
|
|
509
511
|
) => (self: Router.HttpRouter<E, R>) => Router.HttpRouter<E1, Router.HttpRouter.ExcludeProvided<R1>>,
|
|
510
512
|
<E, R, R1, E1>(
|
|
511
513
|
self: Router.HttpRouter<E, R>,
|
|
512
|
-
f: (self: Router.Route.Handler<E, R>) => App.
|
|
514
|
+
f: (self: Router.Route.Handler<E, R>) => App.HttpApp<Respondable.Respondable, E1, R1>
|
|
513
515
|
) => Router.HttpRouter<E1, Router.HttpRouter.ExcludeProvided<R1>>
|
|
514
516
|
>(2, (self, f) =>
|
|
515
517
|
new RouterImpl<any, any>(
|
|
@@ -716,7 +718,7 @@ const makeService = <E, R>(): Router.HttpRouter.Service<E, R> => {
|
|
|
716
718
|
/* @internal */
|
|
717
719
|
export const Tag =
|
|
718
720
|
<const Name extends string>(id: Name) =>
|
|
719
|
-
<Self,
|
|
721
|
+
<Self, R = never, E = unknown>(): Router.HttpRouter.TagClass<Self, Name, E, R> => {
|
|
720
722
|
const Err = globalThis.Error as any
|
|
721
723
|
const limit = Err.stackTraceLimit
|
|
722
724
|
Err.stackTraceLimit = 2
|