@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,9 +1,12 @@
|
|
|
1
1
|
import * as Cause from "effect/Cause"
|
|
2
|
+
import type * as Exit from "effect/Exit"
|
|
2
3
|
import * as FiberId from "effect/FiberId"
|
|
3
4
|
import { globalValue } from "effect/GlobalValue"
|
|
4
5
|
import * as Option from "effect/Option"
|
|
5
6
|
import * as Predicate from "effect/Predicate"
|
|
6
7
|
import type * as Error from "../HttpServerError.js"
|
|
8
|
+
import type { HttpServerResponse } from "../HttpServerResponse.js"
|
|
9
|
+
import * as internalServerResponse from "./httpServerResponse.js"
|
|
7
10
|
|
|
8
11
|
/** @internal */
|
|
9
12
|
export const TypeId: Error.TypeId = Symbol.for(
|
|
@@ -28,10 +31,36 @@ export const isClientAbortCause = <E>(cause: Cause.Cause<E>): boolean =>
|
|
|
28
31
|
)
|
|
29
32
|
|
|
30
33
|
/** @internal */
|
|
34
|
+
export const causeStatusStripped = <E>(
|
|
35
|
+
cause: Cause.Cause<E>
|
|
36
|
+
): readonly [status: number, cause: Option.Option<Cause.Cause<E>>] => {
|
|
37
|
+
if (Cause.isInterruptedOnly(cause)) {
|
|
38
|
+
return [isClientAbortCause(cause) ? 499 : 503, Option.some(cause)]
|
|
39
|
+
}
|
|
40
|
+
let response: HttpServerResponse | undefined
|
|
41
|
+
const stripped = Cause.stripSomeDefects(cause, (defect) => {
|
|
42
|
+
if (internalServerResponse.isServerResponse(defect)) {
|
|
43
|
+
response = defect
|
|
44
|
+
return Option.some(Cause.die(defect))
|
|
45
|
+
}
|
|
46
|
+
return Option.none()
|
|
47
|
+
})
|
|
48
|
+
return [response?.status ?? 500, stripped]
|
|
49
|
+
}
|
|
31
50
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
51
|
+
const internalServerError = internalServerResponse.empty({ status: 500 })
|
|
52
|
+
|
|
53
|
+
/** @internal */
|
|
54
|
+
export const exitResponse = <E>(exit: Exit.Exit<HttpServerResponse, E>): HttpServerResponse => {
|
|
55
|
+
if (exit._tag === "Success") {
|
|
56
|
+
return exit.value
|
|
57
|
+
}
|
|
58
|
+
return Cause.reduce(
|
|
59
|
+
exit.cause,
|
|
60
|
+
internalServerError,
|
|
61
|
+
(_, cause) =>
|
|
62
|
+
cause._tag === "Die" && internalServerResponse.isServerResponse(cause.defect)
|
|
63
|
+
? Option.some(cause.defect)
|
|
64
|
+
: Option.none()
|
|
65
|
+
)
|
|
66
|
+
}
|
|
@@ -11,6 +11,7 @@ import type * as FileSystem from "../FileSystem.js"
|
|
|
11
11
|
import * as Headers from "../Headers.js"
|
|
12
12
|
import type * as Body from "../HttpBody.js"
|
|
13
13
|
import * as Platform from "../HttpPlatform.js"
|
|
14
|
+
import type * as Respondable from "../HttpServerRespondable.js"
|
|
14
15
|
import type * as ServerResponse from "../HttpServerResponse.js"
|
|
15
16
|
import * as Template from "../Template.js"
|
|
16
17
|
import * as UrlParams from "../UrlParams.js"
|
|
@@ -19,6 +20,10 @@ import * as internalBody from "./httpBody.js"
|
|
|
19
20
|
/** @internal */
|
|
20
21
|
export const TypeId: ServerResponse.TypeId = Symbol.for("@effect/platform/HttpServerResponse") as ServerResponse.TypeId
|
|
21
22
|
|
|
23
|
+
const respondableSymbol: typeof Respondable.symbol = Symbol.for(
|
|
24
|
+
"@effect/platform/HttpServerRespondable"
|
|
25
|
+
) as typeof Respondable.symbol
|
|
26
|
+
|
|
22
27
|
class ServerResponseImpl extends Effectable.StructuralClass<ServerResponse.HttpServerResponse>
|
|
23
28
|
implements ServerResponse.HttpServerResponse
|
|
24
29
|
{
|
|
@@ -51,6 +56,10 @@ class ServerResponseImpl extends Effectable.StructuralClass<ServerResponse.HttpS
|
|
|
51
56
|
return Effect.succeed(this)
|
|
52
57
|
}
|
|
53
58
|
|
|
59
|
+
[respondableSymbol](): Effect.Effect<ServerResponse.HttpServerResponse, unknown> {
|
|
60
|
+
return Effect.succeed(this)
|
|
61
|
+
}
|
|
62
|
+
|
|
54
63
|
[Inspectable.NodeInspectSymbol]() {
|
|
55
64
|
return this.toJSON()
|
|
56
65
|
}
|