@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.
Files changed (107) hide show
  1. package/dist/cjs/Error.js +1 -25
  2. package/dist/cjs/Error.js.map +1 -1
  3. package/dist/cjs/HttpApp.js +4 -1
  4. package/dist/cjs/HttpApp.js.map +1 -1
  5. package/dist/cjs/HttpClientError.js +5 -6
  6. package/dist/cjs/HttpClientError.js.map +1 -1
  7. package/dist/cjs/HttpServerError.js +6 -5
  8. package/dist/cjs/HttpServerError.js.map +1 -1
  9. package/dist/cjs/HttpServerResponse.js.map +1 -1
  10. package/dist/cjs/Multipart.js.map +1 -1
  11. package/dist/cjs/Socket.js +11 -11
  12. package/dist/cjs/Socket.js.map +1 -1
  13. package/dist/cjs/Worker.js +10 -1
  14. package/dist/cjs/Worker.js.map +1 -1
  15. package/dist/cjs/WorkerError.js +13 -4
  16. package/dist/cjs/WorkerError.js.map +1 -1
  17. package/dist/cjs/WorkerRunner.js +6 -1
  18. package/dist/cjs/WorkerRunner.js.map +1 -1
  19. package/dist/cjs/internal/httpClient.js +7 -7
  20. package/dist/cjs/internal/httpClient.js.map +1 -1
  21. package/dist/cjs/internal/httpClientResponse.js +13 -13
  22. package/dist/cjs/internal/httpClientResponse.js.map +1 -1
  23. package/dist/cjs/internal/httpServerRequest.js +16 -16
  24. package/dist/cjs/internal/httpServerRequest.js.map +1 -1
  25. package/dist/cjs/internal/httpServerResponse.js +4 -3
  26. package/dist/cjs/internal/httpServerResponse.js.map +1 -1
  27. package/dist/cjs/internal/multipart.js +16 -16
  28. package/dist/cjs/internal/multipart.js.map +1 -1
  29. package/dist/cjs/internal/path.js +461 -11
  30. package/dist/cjs/internal/path.js.map +1 -1
  31. package/dist/cjs/internal/worker.js +126 -59
  32. package/dist/cjs/internal/worker.js.map +1 -1
  33. package/dist/cjs/internal/workerRunner.js +39 -65
  34. package/dist/cjs/internal/workerRunner.js.map +1 -1
  35. package/dist/dts/Error.d.ts +0 -10
  36. package/dist/dts/Error.d.ts.map +1 -1
  37. package/dist/dts/HttpApp.d.ts +1 -1
  38. package/dist/dts/HttpApp.d.ts.map +1 -1
  39. package/dist/dts/HttpClientError.d.ts +6 -8
  40. package/dist/dts/HttpClientError.d.ts.map +1 -1
  41. package/dist/dts/HttpServerError.d.ts +10 -13
  42. package/dist/dts/HttpServerError.d.ts.map +1 -1
  43. package/dist/dts/HttpServerResponse.d.ts +5 -1
  44. package/dist/dts/HttpServerResponse.d.ts.map +1 -1
  45. package/dist/dts/Multipart.d.ts +3 -2
  46. package/dist/dts/Multipart.d.ts.map +1 -1
  47. package/dist/dts/Socket.d.ts +2 -4
  48. package/dist/dts/Socket.d.ts.map +1 -1
  49. package/dist/dts/Worker.d.ts +27 -27
  50. package/dist/dts/Worker.d.ts.map +1 -1
  51. package/dist/dts/WorkerError.d.ts +2 -2
  52. package/dist/dts/WorkerError.d.ts.map +1 -1
  53. package/dist/dts/WorkerRunner.d.ts +8 -5
  54. package/dist/dts/WorkerRunner.d.ts.map +1 -1
  55. package/dist/esm/Error.js +0 -23
  56. package/dist/esm/Error.js.map +1 -1
  57. package/dist/esm/HttpApp.js +4 -1
  58. package/dist/esm/HttpApp.js.map +1 -1
  59. package/dist/esm/HttpClientError.js +5 -6
  60. package/dist/esm/HttpClientError.js.map +1 -1
  61. package/dist/esm/HttpServerError.js +7 -6
  62. package/dist/esm/HttpServerError.js.map +1 -1
  63. package/dist/esm/HttpServerResponse.js.map +1 -1
  64. package/dist/esm/Multipart.js.map +1 -1
  65. package/dist/esm/Socket.js +12 -12
  66. package/dist/esm/Socket.js.map +1 -1
  67. package/dist/esm/Worker.js +9 -0
  68. package/dist/esm/Worker.js.map +1 -1
  69. package/dist/esm/WorkerError.js +13 -4
  70. package/dist/esm/WorkerError.js.map +1 -1
  71. package/dist/esm/WorkerRunner.js +5 -0
  72. package/dist/esm/WorkerRunner.js.map +1 -1
  73. package/dist/esm/internal/httpClient.js +7 -7
  74. package/dist/esm/internal/httpClient.js.map +1 -1
  75. package/dist/esm/internal/httpClientResponse.js +13 -13
  76. package/dist/esm/internal/httpClientResponse.js.map +1 -1
  77. package/dist/esm/internal/httpServerRequest.js +16 -16
  78. package/dist/esm/internal/httpServerRequest.js.map +1 -1
  79. package/dist/esm/internal/httpServerResponse.js +4 -3
  80. package/dist/esm/internal/httpServerResponse.js.map +1 -1
  81. package/dist/esm/internal/multipart.js +17 -17
  82. package/dist/esm/internal/multipart.js.map +1 -1
  83. package/dist/esm/internal/path.js +461 -10
  84. package/dist/esm/internal/path.js.map +1 -1
  85. package/dist/esm/internal/worker.js +124 -57
  86. package/dist/esm/internal/worker.js.map +1 -1
  87. package/dist/esm/internal/workerRunner.js +38 -65
  88. package/dist/esm/internal/workerRunner.js.map +1 -1
  89. package/package.json +5 -6
  90. package/src/Error.ts +0 -38
  91. package/src/HttpApp.ts +2 -2
  92. package/src/HttpClientError.ts +13 -6
  93. package/src/HttpServerError.ts +17 -6
  94. package/src/HttpServerResponse.ts +8 -1
  95. package/src/Multipart.ts +3 -2
  96. package/src/Socket.ts +10 -9
  97. package/src/Worker.ts +32 -29
  98. package/src/WorkerError.ts +15 -8
  99. package/src/WorkerRunner.ts +15 -8
  100. package/src/internal/httpClient.ts +7 -7
  101. package/src/internal/httpClientResponse.ts +13 -13
  102. package/src/internal/httpServerRequest.ts +15 -15
  103. package/src/internal/httpServerResponse.ts +7 -3
  104. package/src/internal/multipart.ts +16 -15
  105. package/src/internal/path.ts +510 -14
  106. package/src/internal/worker.ts +193 -146
  107. 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, (error) =>
154
+ Effect.mapError(request.multipart, (cause) =>
155
155
  new Error.RequestError({
156
156
  request,
157
157
  reason: "Decode",
158
- error
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
- error: _
234
+ cause
235
235
  }))
236
236
  : Stream.fail(
237
237
  new Error.RequestError({
238
238
  request: this,
239
239
  reason: "Decode",
240
- error: "can not create stream from empty body"
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: (error) =>
253
+ catch: (cause) =>
254
254
  new Error.RequestError({
255
255
  request: this,
256
256
  reason: "Decode",
257
- error
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: (error) =>
267
+ catch: (cause) =>
268
268
  new Error.RequestError({
269
269
  request: this,
270
270
  reason: "Decode",
271
- error
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: (error) =>
280
+ catch: (cause) =>
281
281
  new Error.RequestError({
282
282
  request: this,
283
283
  reason: "Decode",
284
- error
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, (error) => new Multipart.MultipartError({ reason: "InternalError", error })),
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: (error) =>
325
+ catch: (cause) =>
326
326
  new Error.RequestError({
327
327
  request: this,
328
328
  reason: "Decode",
329
- error
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
- error: "Not an upgradeable ServerRequest"
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, withoutBody = false): Response => {
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.toReadableStream(body.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 { RefailError } from "../Error.js"
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 RefailError(ErrorTypeId, "MultipartError")<{
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 `${this.reason}: ${super.message}`
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(error: MP.MultipartError): Multipart.MultipartError {
324
- switch (error._tag) {
324
+ function convertError(cause: MP.MultipartError): Multipart.MultipartError {
325
+ switch (cause._tag) {
325
326
  case "ReachedLimit": {
326
- switch (error.limit) {
327
+ switch (cause.limit) {
327
328
  case "MaxParts": {
328
- return new MultipartError({ reason: "TooManyParts", error })
329
+ return new MultipartError({ reason: "TooManyParts", cause })
329
330
  }
330
331
  case "MaxFieldSize": {
331
- return new MultipartError({ reason: "FieldTooLarge", error })
332
+ return new MultipartError({ reason: "FieldTooLarge", cause })
332
333
  }
333
334
  case "MaxPartSize": {
334
- return new MultipartError({ reason: "FileTooLarge", error })
335
+ return new MultipartError({ reason: "FileTooLarge", cause })
335
336
  }
336
337
  case "MaxTotalSize": {
337
- return new MultipartError({ reason: "BodyTooLarge", error })
338
+ return new MultipartError({ reason: "BodyTooLarge", cause })
338
339
  }
339
340
  }
340
341
  }
341
342
  default: {
342
- return new MultipartError({ reason: "Parse", error })
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
- (error) => new MultipartError({ reason: "InternalError", error })
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: (error) => Effect.fail(new MultipartError({ reason: "InternalError", error })),
454
- BadArgument: (error) => Effect.fail(new MultipartError({ reason: "InternalError", error }))
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