@effect/platform 0.58.27 → 0.59.1
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/dist/cjs/Error.js +1 -25
- package/dist/cjs/Error.js.map +1 -1
- package/dist/cjs/HttpApp.js +4 -1
- package/dist/cjs/HttpApp.js.map +1 -1
- package/dist/cjs/HttpClientError.js +5 -6
- package/dist/cjs/HttpClientError.js.map +1 -1
- package/dist/cjs/HttpServerError.js +6 -5
- package/dist/cjs/HttpServerError.js.map +1 -1
- package/dist/cjs/HttpServerResponse.js.map +1 -1
- package/dist/cjs/Multipart.js.map +1 -1
- package/dist/cjs/Socket.js +11 -11
- package/dist/cjs/Socket.js.map +1 -1
- package/dist/cjs/Worker.js +10 -1
- package/dist/cjs/Worker.js.map +1 -1
- package/dist/cjs/WorkerError.js +13 -4
- package/dist/cjs/WorkerError.js.map +1 -1
- package/dist/cjs/WorkerRunner.js +6 -1
- package/dist/cjs/WorkerRunner.js.map +1 -1
- package/dist/cjs/internal/httpClient.js +7 -7
- package/dist/cjs/internal/httpClient.js.map +1 -1
- package/dist/cjs/internal/httpClientResponse.js +13 -13
- package/dist/cjs/internal/httpClientResponse.js.map +1 -1
- package/dist/cjs/internal/httpServerRequest.js +16 -16
- package/dist/cjs/internal/httpServerRequest.js.map +1 -1
- package/dist/cjs/internal/httpServerResponse.js +4 -3
- package/dist/cjs/internal/httpServerResponse.js.map +1 -1
- package/dist/cjs/internal/multipart.js +16 -16
- package/dist/cjs/internal/multipart.js.map +1 -1
- package/dist/cjs/internal/path.js +461 -11
- package/dist/cjs/internal/path.js.map +1 -1
- package/dist/cjs/internal/worker.js +126 -59
- package/dist/cjs/internal/worker.js.map +1 -1
- package/dist/cjs/internal/workerRunner.js +39 -65
- package/dist/cjs/internal/workerRunner.js.map +1 -1
- package/dist/dts/Error.d.ts +0 -10
- package/dist/dts/Error.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/HttpClientError.d.ts +6 -8
- package/dist/dts/HttpClientError.d.ts.map +1 -1
- package/dist/dts/HttpServerError.d.ts +10 -13
- package/dist/dts/HttpServerError.d.ts.map +1 -1
- package/dist/dts/HttpServerResponse.d.ts +5 -1
- package/dist/dts/HttpServerResponse.d.ts.map +1 -1
- package/dist/dts/Multipart.d.ts +3 -2
- package/dist/dts/Multipart.d.ts.map +1 -1
- package/dist/dts/Socket.d.ts +2 -4
- package/dist/dts/Socket.d.ts.map +1 -1
- package/dist/dts/Worker.d.ts +27 -27
- package/dist/dts/Worker.d.ts.map +1 -1
- package/dist/dts/WorkerError.d.ts +2 -2
- package/dist/dts/WorkerError.d.ts.map +1 -1
- package/dist/dts/WorkerRunner.d.ts +8 -5
- package/dist/dts/WorkerRunner.d.ts.map +1 -1
- package/dist/esm/Error.js +0 -23
- package/dist/esm/Error.js.map +1 -1
- package/dist/esm/HttpApp.js +4 -1
- package/dist/esm/HttpApp.js.map +1 -1
- package/dist/esm/HttpClientError.js +5 -6
- package/dist/esm/HttpClientError.js.map +1 -1
- package/dist/esm/HttpServerError.js +7 -6
- package/dist/esm/HttpServerError.js.map +1 -1
- package/dist/esm/HttpServerResponse.js.map +1 -1
- package/dist/esm/Multipart.js.map +1 -1
- package/dist/esm/Socket.js +12 -12
- package/dist/esm/Socket.js.map +1 -1
- package/dist/esm/Worker.js +9 -0
- package/dist/esm/Worker.js.map +1 -1
- package/dist/esm/WorkerError.js +13 -4
- package/dist/esm/WorkerError.js.map +1 -1
- package/dist/esm/WorkerRunner.js +5 -0
- package/dist/esm/WorkerRunner.js.map +1 -1
- package/dist/esm/internal/httpClient.js +7 -7
- package/dist/esm/internal/httpClient.js.map +1 -1
- package/dist/esm/internal/httpClientResponse.js +13 -13
- package/dist/esm/internal/httpClientResponse.js.map +1 -1
- package/dist/esm/internal/httpServerRequest.js +16 -16
- package/dist/esm/internal/httpServerRequest.js.map +1 -1
- package/dist/esm/internal/httpServerResponse.js +4 -3
- package/dist/esm/internal/httpServerResponse.js.map +1 -1
- package/dist/esm/internal/multipart.js +17 -17
- package/dist/esm/internal/multipart.js.map +1 -1
- package/dist/esm/internal/path.js +461 -10
- package/dist/esm/internal/path.js.map +1 -1
- package/dist/esm/internal/worker.js +124 -57
- package/dist/esm/internal/worker.js.map +1 -1
- package/dist/esm/internal/workerRunner.js +38 -65
- package/dist/esm/internal/workerRunner.js.map +1 -1
- package/package.json +5 -6
- package/src/Error.ts +0 -38
- package/src/HttpApp.ts +2 -2
- package/src/HttpClientError.ts +13 -6
- package/src/HttpServerError.ts +17 -6
- package/src/HttpServerResponse.ts +8 -1
- package/src/Multipart.ts +3 -2
- package/src/Socket.ts +10 -9
- package/src/Worker.ts +32 -29
- package/src/WorkerError.ts +15 -8
- package/src/WorkerRunner.ts +15 -8
- package/src/internal/httpClient.ts +7 -7
- package/src/internal/httpClientResponse.ts +13 -13
- package/src/internal/httpServerRequest.ts +15 -15
- package/src/internal/httpServerResponse.ts +7 -3
- package/src/internal/multipart.ts +16 -15
- package/src/internal/path.ts +510 -14
- package/src/internal/worker.ts +193 -146
- package/src/internal/workerRunner.ts +106 -139
|
@@ -151,11 +151,11 @@ export const schemaBodyFormJson = <A, I, R>(schema: Schema.Schema<A, I, R>, opti
|
|
|
151
151
|
> => {
|
|
152
152
|
if (isMultipart(request)) {
|
|
153
153
|
return Effect.flatMap(
|
|
154
|
-
Effect.mapError(request.multipart, (
|
|
154
|
+
Effect.mapError(request.multipart, (cause) =>
|
|
155
155
|
new Error.RequestError({
|
|
156
156
|
request,
|
|
157
157
|
reason: "Decode",
|
|
158
|
-
|
|
158
|
+
cause
|
|
159
159
|
})),
|
|
160
160
|
parseMultipart(field)
|
|
161
161
|
)
|
|
@@ -227,17 +227,17 @@ class ServerRequestImpl extends Inspectable.Class implements ServerRequest.HttpS
|
|
|
227
227
|
|
|
228
228
|
get stream(): Stream.Stream<Uint8Array, Error.RequestError> {
|
|
229
229
|
return this.source.body
|
|
230
|
-
? Stream.fromReadableStream(() => this.source.body as any, (
|
|
230
|
+
? Stream.fromReadableStream(() => this.source.body as any, (cause) =>
|
|
231
231
|
new Error.RequestError({
|
|
232
232
|
request: this,
|
|
233
233
|
reason: "Decode",
|
|
234
|
-
|
|
234
|
+
cause
|
|
235
235
|
}))
|
|
236
236
|
: Stream.fail(
|
|
237
237
|
new Error.RequestError({
|
|
238
238
|
request: this,
|
|
239
239
|
reason: "Decode",
|
|
240
|
-
|
|
240
|
+
description: "can not create stream from empty body"
|
|
241
241
|
})
|
|
242
242
|
)
|
|
243
243
|
}
|
|
@@ -250,11 +250,11 @@ class ServerRequestImpl extends Inspectable.Class implements ServerRequest.HttpS
|
|
|
250
250
|
this.textEffect = Effect.runSync(Effect.cached(
|
|
251
251
|
Effect.tryPromise({
|
|
252
252
|
try: () => this.source.text(),
|
|
253
|
-
catch: (
|
|
253
|
+
catch: (cause) =>
|
|
254
254
|
new Error.RequestError({
|
|
255
255
|
request: this,
|
|
256
256
|
reason: "Decode",
|
|
257
|
-
|
|
257
|
+
cause
|
|
258
258
|
})
|
|
259
259
|
})
|
|
260
260
|
))
|
|
@@ -264,11 +264,11 @@ class ServerRequestImpl extends Inspectable.Class implements ServerRequest.HttpS
|
|
|
264
264
|
get json(): Effect.Effect<unknown, Error.RequestError> {
|
|
265
265
|
return Effect.tryMap(this.text, {
|
|
266
266
|
try: (_) => JSON.parse(_) as unknown,
|
|
267
|
-
catch: (
|
|
267
|
+
catch: (cause) =>
|
|
268
268
|
new Error.RequestError({
|
|
269
269
|
request: this,
|
|
270
270
|
reason: "Decode",
|
|
271
|
-
|
|
271
|
+
cause
|
|
272
272
|
})
|
|
273
273
|
})
|
|
274
274
|
}
|
|
@@ -277,11 +277,11 @@ class ServerRequestImpl extends Inspectable.Class implements ServerRequest.HttpS
|
|
|
277
277
|
return Effect.flatMap(this.text, (_) =>
|
|
278
278
|
Effect.try({
|
|
279
279
|
try: () => UrlParams.fromInput(new URLSearchParams(_)),
|
|
280
|
-
catch: (
|
|
280
|
+
catch: (cause) =>
|
|
281
281
|
new Error.RequestError({
|
|
282
282
|
request: this,
|
|
283
283
|
reason: "Decode",
|
|
284
|
-
|
|
284
|
+
cause
|
|
285
285
|
})
|
|
286
286
|
}))
|
|
287
287
|
}
|
|
@@ -309,7 +309,7 @@ class ServerRequestImpl extends Inspectable.Class implements ServerRequest.HttpS
|
|
|
309
309
|
|
|
310
310
|
get multipartStream(): Stream.Stream<Multipart.Part, Multipart.MultipartError> {
|
|
311
311
|
return Stream.pipeThroughChannel(
|
|
312
|
-
Stream.mapError(this.stream, (
|
|
312
|
+
Stream.mapError(this.stream, (cause) => new Multipart.MultipartError({ reason: "InternalError", cause })),
|
|
313
313
|
Multipart.makeChannel(this.headers)
|
|
314
314
|
)
|
|
315
315
|
}
|
|
@@ -322,11 +322,11 @@ class ServerRequestImpl extends Inspectable.Class implements ServerRequest.HttpS
|
|
|
322
322
|
this.arrayBufferEffect = Effect.runSync(Effect.cached(
|
|
323
323
|
Effect.tryPromise({
|
|
324
324
|
try: () => this.source.arrayBuffer(),
|
|
325
|
-
catch: (
|
|
325
|
+
catch: (cause) =>
|
|
326
326
|
new Error.RequestError({
|
|
327
327
|
request: this,
|
|
328
328
|
reason: "Decode",
|
|
329
|
-
|
|
329
|
+
cause
|
|
330
330
|
})
|
|
331
331
|
})
|
|
332
332
|
))
|
|
@@ -338,7 +338,7 @@ class ServerRequestImpl extends Inspectable.Class implements ServerRequest.HttpS
|
|
|
338
338
|
new Error.RequestError({
|
|
339
339
|
request: this,
|
|
340
340
|
reason: "Decode",
|
|
341
|
-
|
|
341
|
+
description: "Not an upgradeable ServerRequest"
|
|
342
342
|
})
|
|
343
343
|
)
|
|
344
344
|
}
|
|
@@ -4,6 +4,7 @@ import * as Effect from "effect/Effect"
|
|
|
4
4
|
import * as Effectable from "effect/Effectable"
|
|
5
5
|
import { dual } from "effect/Function"
|
|
6
6
|
import * as Inspectable from "effect/Inspectable"
|
|
7
|
+
import * as Runtime from "effect/Runtime"
|
|
7
8
|
import * as Stream from "effect/Stream"
|
|
8
9
|
import * as Cookies from "../Cookies.js"
|
|
9
10
|
import type * as PlatformError from "../Error.js"
|
|
@@ -504,7 +505,10 @@ export const setBody = dual<
|
|
|
504
505
|
})
|
|
505
506
|
|
|
506
507
|
/** @internal */
|
|
507
|
-
export const toWeb = (response: ServerResponse.HttpServerResponse,
|
|
508
|
+
export const toWeb = (response: ServerResponse.HttpServerResponse, options?: {
|
|
509
|
+
readonly withoutBody?: boolean | undefined
|
|
510
|
+
readonly runtime?: Runtime.Runtime<never> | undefined
|
|
511
|
+
}): Response => {
|
|
508
512
|
const headers = new globalThis.Headers(response.headers)
|
|
509
513
|
if (!Cookies.isEmpty(response.cookies)) {
|
|
510
514
|
const toAdd = Cookies.toSetCookieHeaders(response.cookies)
|
|
@@ -512,7 +516,7 @@ export const toWeb = (response: ServerResponse.HttpServerResponse, withoutBody =
|
|
|
512
516
|
headers.append("set-cookie", header)
|
|
513
517
|
}
|
|
514
518
|
}
|
|
515
|
-
if (withoutBody) {
|
|
519
|
+
if (options?.withoutBody) {
|
|
516
520
|
return new Response(undefined, {
|
|
517
521
|
status: response.status,
|
|
518
522
|
statusText: response.statusText as string,
|
|
@@ -544,7 +548,7 @@ export const toWeb = (response: ServerResponse.HttpServerResponse, withoutBody =
|
|
|
544
548
|
})
|
|
545
549
|
}
|
|
546
550
|
case "Stream": {
|
|
547
|
-
return new Response(Stream.
|
|
551
|
+
return new Response(Stream.toReadableStreamRuntime(body.stream, options?.runtime ?? Runtime.defaultRuntime), {
|
|
548
552
|
status: response.status,
|
|
549
553
|
statusText: response.statusText,
|
|
550
554
|
headers
|
|
@@ -16,7 +16,7 @@ import type * as Scope from "effect/Scope"
|
|
|
16
16
|
import type * as AsyncInput from "effect/SingleProducerAsyncInput"
|
|
17
17
|
import * as Stream from "effect/Stream"
|
|
18
18
|
import * as MP from "multipasta"
|
|
19
|
-
import {
|
|
19
|
+
import { TypeIdError } from "../Error.js"
|
|
20
20
|
import * as FileSystem from "../FileSystem.js"
|
|
21
21
|
import * as IncomingMessage from "../HttpIncomingMessage.js"
|
|
22
22
|
import type * as Multipart from "../Multipart.js"
|
|
@@ -44,11 +44,12 @@ export const ErrorTypeId: Multipart.ErrorTypeId = Symbol.for(
|
|
|
44
44
|
) as Multipart.ErrorTypeId
|
|
45
45
|
|
|
46
46
|
/** @internal */
|
|
47
|
-
export class MultipartError extends
|
|
47
|
+
export class MultipartError extends TypeIdError(ErrorTypeId, "MultipartError")<{
|
|
48
48
|
readonly reason: "FileTooLarge" | "FieldTooLarge" | "BodyTooLarge" | "TooManyParts" | "InternalError" | "Parse"
|
|
49
|
+
readonly cause: unknown
|
|
49
50
|
}> {
|
|
50
|
-
get message() {
|
|
51
|
-
return
|
|
51
|
+
get message(): string {
|
|
52
|
+
return this.reason
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
|
|
@@ -320,26 +321,26 @@ const makeFromQueue = <IE>(
|
|
|
320
321
|
return Channel.embedInput(partsChannel, input)
|
|
321
322
|
})
|
|
322
323
|
|
|
323
|
-
function convertError(
|
|
324
|
-
switch (
|
|
324
|
+
function convertError(cause: MP.MultipartError): Multipart.MultipartError {
|
|
325
|
+
switch (cause._tag) {
|
|
325
326
|
case "ReachedLimit": {
|
|
326
|
-
switch (
|
|
327
|
+
switch (cause.limit) {
|
|
327
328
|
case "MaxParts": {
|
|
328
|
-
return new MultipartError({ reason: "TooManyParts",
|
|
329
|
+
return new MultipartError({ reason: "TooManyParts", cause })
|
|
329
330
|
}
|
|
330
331
|
case "MaxFieldSize": {
|
|
331
|
-
return new MultipartError({ reason: "FieldTooLarge",
|
|
332
|
+
return new MultipartError({ reason: "FieldTooLarge", cause })
|
|
332
333
|
}
|
|
333
334
|
case "MaxPartSize": {
|
|
334
|
-
return new MultipartError({ reason: "FileTooLarge",
|
|
335
|
+
return new MultipartError({ reason: "FileTooLarge", cause })
|
|
335
336
|
}
|
|
336
337
|
case "MaxTotalSize": {
|
|
337
|
-
return new MultipartError({ reason: "BodyTooLarge",
|
|
338
|
+
return new MultipartError({ reason: "BodyTooLarge", cause })
|
|
338
339
|
}
|
|
339
340
|
}
|
|
340
341
|
}
|
|
341
342
|
default: {
|
|
342
|
-
return new MultipartError({ reason: "Parse",
|
|
343
|
+
return new MultipartError({ reason: "Parse", cause })
|
|
343
344
|
}
|
|
344
345
|
}
|
|
345
346
|
}
|
|
@@ -409,7 +410,7 @@ const defaultWriteFile = (path: string, file: Multipart.File) =>
|
|
|
409
410
|
(fs) =>
|
|
410
411
|
Effect.mapError(
|
|
411
412
|
Stream.run(file.content, fs.sink(path)),
|
|
412
|
-
(
|
|
413
|
+
(cause) => new MultipartError({ reason: "InternalError", cause })
|
|
413
414
|
)
|
|
414
415
|
)
|
|
415
416
|
|
|
@@ -450,8 +451,8 @@ export const toPersisted = (
|
|
|
450
451
|
)
|
|
451
452
|
),
|
|
452
453
|
Effect.catchTags({
|
|
453
|
-
SystemError: (
|
|
454
|
-
BadArgument: (
|
|
454
|
+
SystemError: (cause) => Effect.fail(new MultipartError({ reason: "InternalError", cause })),
|
|
455
|
+
BadArgument: (cause) => Effect.fail(new MultipartError({ reason: "InternalError", cause }))
|
|
455
456
|
})
|
|
456
457
|
)
|
|
457
458
|
|