@effect/platform 0.45.2 → 0.45.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/Template/package.json +6 -0
- package/dist/cjs/Http/Client.js.map +1 -1
- package/dist/cjs/Http/ServerResponse.js +11 -1
- package/dist/cjs/Http/ServerResponse.js.map +1 -1
- package/dist/cjs/Template.js +133 -0
- package/dist/cjs/Template.js.map +1 -0
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/internal/http/client.js +2 -2
- package/dist/cjs/internal/http/client.js.map +1 -1
- package/dist/cjs/internal/http/serverResponse.js +19 -1
- package/dist/cjs/internal/http/serverResponse.js.map +1 -1
- package/dist/dts/Http/Client.d.ts +2 -2
- package/dist/dts/Http/Client.d.ts.map +1 -1
- package/dist/dts/Http/ServerResponse.d.ts +14 -0
- package/dist/dts/Http/ServerResponse.d.ts.map +1 -1
- package/dist/dts/Template.d.ts +48 -0
- package/dist/dts/Template.d.ts.map +1 -0
- package/dist/dts/index.d.ts +4 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/Http/Client.js.map +1 -1
- package/dist/esm/Http/ServerResponse.js +10 -0
- package/dist/esm/Http/ServerResponse.js.map +1 -1
- package/dist/esm/Template.js +100 -0
- package/dist/esm/Template.js.map +1 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/http/client.js +2 -2
- package/dist/esm/internal/http/client.js.map +1 -1
- package/dist/esm/internal/http/serverResponse.js +16 -0
- package/dist/esm/internal/http/serverResponse.js.map +1 -1
- package/package.json +11 -3
- package/src/Http/Client.ts +2 -14
- package/src/Http/ServerResponse.ts +22 -0
- package/src/Template.ts +180 -0
- package/src/index.ts +5 -0
- package/src/internal/http/client.ts +18 -20
- package/src/internal/http/serverResponse.ts +47 -0
|
@@ -555,7 +555,7 @@ export const schemaFunction = dual<
|
|
|
555
555
|
request: ClientRequest.ClientRequest
|
|
556
556
|
) => (
|
|
557
557
|
a: SA
|
|
558
|
-
) => Effect.Effect<A, E | ParseResult.ParseError | Error.RequestError,
|
|
558
|
+
) => Effect.Effect<A, E | ParseResult.ParseError | Error.RequestError, SR | R>,
|
|
559
559
|
<R, E, A, SA, SI, SR>(
|
|
560
560
|
self: Client.Client<R, E, A>,
|
|
561
561
|
schema: Schema.Schema<SA, SI, SR>
|
|
@@ -563,29 +563,27 @@ export const schemaFunction = dual<
|
|
|
563
563
|
request: ClientRequest.ClientRequest
|
|
564
564
|
) => (
|
|
565
565
|
a: SA
|
|
566
|
-
) => Effect.Effect<A, E | ParseResult.ParseError | Error.RequestError,
|
|
566
|
+
) => Effect.Effect<A, E | ParseResult.ParseError | Error.RequestError, SR | R>
|
|
567
567
|
>(2, (self, schema) => {
|
|
568
568
|
const encode = Schema.encode(schema)
|
|
569
569
|
return (request) => (a) =>
|
|
570
|
-
Effect.
|
|
571
|
-
Effect.
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
(
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
internalBody.uint8Array(body, "application/json")
|
|
586
|
-
)
|
|
570
|
+
Effect.flatMap(
|
|
571
|
+
Effect.tryMap(encode(a), {
|
|
572
|
+
try: (body) => new TextEncoder().encode(JSON.stringify(body)),
|
|
573
|
+
catch: (error) =>
|
|
574
|
+
internalError.requestError({
|
|
575
|
+
request,
|
|
576
|
+
reason: "Encode",
|
|
577
|
+
error
|
|
578
|
+
})
|
|
579
|
+
}),
|
|
580
|
+
(body) =>
|
|
581
|
+
self(
|
|
582
|
+
internalRequest.setBody(
|
|
583
|
+
request,
|
|
584
|
+
internalBody.uint8Array(body, "application/json")
|
|
587
585
|
)
|
|
588
|
-
|
|
586
|
+
)
|
|
589
587
|
)
|
|
590
588
|
})
|
|
591
589
|
|
|
@@ -10,6 +10,7 @@ import * as Headers from "../../Http/Headers.js"
|
|
|
10
10
|
import * as Platform from "../../Http/Platform.js"
|
|
11
11
|
import type * as ServerResponse from "../../Http/ServerResponse.js"
|
|
12
12
|
import * as UrlParams from "../../Http/UrlParams.js"
|
|
13
|
+
import * as Template from "../../Template.js"
|
|
13
14
|
import * as internalBody from "./body.js"
|
|
14
15
|
|
|
15
16
|
/** @internal */
|
|
@@ -91,6 +92,52 @@ export const text = (body: string, options?: ServerResponse.Options.WithContentT
|
|
|
91
92
|
internalBody.text(body, getContentType(options))
|
|
92
93
|
)
|
|
93
94
|
|
|
95
|
+
/** @internal */
|
|
96
|
+
export const html: {
|
|
97
|
+
<A extends ReadonlyArray<Template.Interpolated>>(
|
|
98
|
+
strings: TemplateStringsArray,
|
|
99
|
+
...args: A
|
|
100
|
+
): Effect.Effect<
|
|
101
|
+
ServerResponse.ServerResponse,
|
|
102
|
+
Template.Interpolated.Error<A[number]>,
|
|
103
|
+
Template.Interpolated.Context<A[number]>
|
|
104
|
+
>
|
|
105
|
+
(html: string): ServerResponse.ServerResponse
|
|
106
|
+
} = (
|
|
107
|
+
strings: TemplateStringsArray | string,
|
|
108
|
+
...args: ReadonlyArray<Template.Interpolated>
|
|
109
|
+
) => {
|
|
110
|
+
if (typeof strings === "string") {
|
|
111
|
+
return text(strings, { contentType: "text/html" })
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return Effect.map(
|
|
115
|
+
Template.make(strings, ...args),
|
|
116
|
+
(_) => text(_, { contentType: "text/html" })
|
|
117
|
+
) as any
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/** @internal */
|
|
121
|
+
export const htmlStream = <A extends ReadonlyArray<Template.InterpolatedWithStream>>(
|
|
122
|
+
strings: TemplateStringsArray,
|
|
123
|
+
...args: A
|
|
124
|
+
): Effect.Effect<
|
|
125
|
+
ServerResponse.ServerResponse,
|
|
126
|
+
never,
|
|
127
|
+
Template.Interpolated.Context<A[number]>
|
|
128
|
+
> =>
|
|
129
|
+
Effect.map(
|
|
130
|
+
Effect.context<any>(),
|
|
131
|
+
(context) =>
|
|
132
|
+
stream(
|
|
133
|
+
Stream.provideContext(
|
|
134
|
+
Stream.encodeText(Template.stream(strings, ...args)),
|
|
135
|
+
context
|
|
136
|
+
),
|
|
137
|
+
{ contentType: "text/html" }
|
|
138
|
+
)
|
|
139
|
+
)
|
|
140
|
+
|
|
94
141
|
/** @internal */
|
|
95
142
|
export const json = (
|
|
96
143
|
body: unknown,
|