@effect/platform 0.48.29 → 0.49.0

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 (157) hide show
  1. package/README.md +12 -12
  2. package/dist/cjs/Http/App.js +9 -7
  3. package/dist/cjs/Http/App.js.map +1 -1
  4. package/dist/cjs/Http/Client.js +13 -3
  5. package/dist/cjs/Http/Client.js.map +1 -1
  6. package/dist/cjs/Http/ClientResponse.js +9 -9
  7. package/dist/cjs/Http/ClientResponse.js.map +1 -1
  8. package/dist/cjs/Http/Cookies.js +7 -7
  9. package/dist/cjs/Http/Cookies.js.map +1 -1
  10. package/dist/cjs/Http/Headers.js +7 -7
  11. package/dist/cjs/Http/Headers.js.map +1 -1
  12. package/dist/cjs/Http/IncomingMessage.js +7 -7
  13. package/dist/cjs/Http/IncomingMessage.js.map +1 -1
  14. package/dist/cjs/Http/Middleware.js +11 -1
  15. package/dist/cjs/Http/Middleware.js.map +1 -1
  16. package/dist/cjs/Http/Multiplex.js.map +1 -1
  17. package/dist/cjs/Http/Router.js.map +1 -1
  18. package/dist/cjs/Http/UrlParams.js +13 -13
  19. package/dist/cjs/Http/UrlParams.js.map +1 -1
  20. package/dist/cjs/PlatformConfigProvider.js +2 -2
  21. package/dist/cjs/PlatformConfigProvider.js.map +1 -1
  22. package/dist/cjs/Socket.js +6 -6
  23. package/dist/cjs/Socket.js.map +1 -1
  24. package/dist/cjs/Transferable.js +1 -1
  25. package/dist/cjs/Transferable.js.map +1 -1
  26. package/dist/cjs/WorkerRunner.js.map +1 -1
  27. package/dist/cjs/internal/command.js +1 -1
  28. package/dist/cjs/internal/command.js.map +1 -1
  29. package/dist/cjs/internal/fileSystem.js +2 -2
  30. package/dist/cjs/internal/fileSystem.js.map +1 -1
  31. package/dist/cjs/internal/http/client.js +19 -16
  32. package/dist/cjs/internal/http/client.js.map +1 -1
  33. package/dist/cjs/internal/http/clientResponse.js +5 -5
  34. package/dist/cjs/internal/http/clientResponse.js.map +1 -1
  35. package/dist/cjs/internal/http/middleware.js +8 -3
  36. package/dist/cjs/internal/http/middleware.js.map +1 -1
  37. package/dist/cjs/internal/http/multipart.js +4 -4
  38. package/dist/cjs/internal/http/multipart.js.map +1 -1
  39. package/dist/cjs/internal/http/multiplex.js +2 -2
  40. package/dist/cjs/internal/http/multiplex.js.map +1 -1
  41. package/dist/cjs/internal/http/router.js +2 -1
  42. package/dist/cjs/internal/http/router.js.map +1 -1
  43. package/dist/cjs/internal/worker.js +7 -7
  44. package/dist/cjs/internal/worker.js.map +1 -1
  45. package/dist/cjs/internal/workerRunner.js +14 -13
  46. package/dist/cjs/internal/workerRunner.js.map +1 -1
  47. package/dist/dts/Command.d.ts +3 -3
  48. package/dist/dts/Command.d.ts.map +1 -1
  49. package/dist/dts/Http/App.d.ts +7 -7
  50. package/dist/dts/Http/App.d.ts.map +1 -1
  51. package/dist/dts/Http/Client.d.ts +78 -65
  52. package/dist/dts/Http/Client.d.ts.map +1 -1
  53. package/dist/dts/Http/ClientResponse.d.ts +5 -5
  54. package/dist/dts/Http/Cookies.d.ts +3 -3
  55. package/dist/dts/Http/Cookies.d.ts.map +1 -1
  56. package/dist/dts/Http/Headers.d.ts +4 -4
  57. package/dist/dts/Http/Headers.d.ts.map +1 -1
  58. package/dist/dts/Http/IncomingMessage.d.ts +4 -3
  59. package/dist/dts/Http/IncomingMessage.d.ts.map +1 -1
  60. package/dist/dts/Http/Middleware.d.ts +22 -5
  61. package/dist/dts/Http/Middleware.d.ts.map +1 -1
  62. package/dist/dts/Http/Multiplex.d.ts +22 -22
  63. package/dist/dts/Http/Multiplex.d.ts.map +1 -1
  64. package/dist/dts/Http/Router.d.ts +80 -80
  65. package/dist/dts/Http/Router.d.ts.map +1 -1
  66. package/dist/dts/Http/Server.d.ts +11 -11
  67. package/dist/dts/Http/Server.d.ts.map +1 -1
  68. package/dist/dts/Http/ServerRequest.d.ts +1 -1
  69. package/dist/dts/Http/ServerRequest.d.ts.map +1 -1
  70. package/dist/dts/Http/TraceContext.d.ts.map +1 -1
  71. package/dist/dts/Http/UrlParams.d.ts.map +1 -1
  72. package/dist/dts/PlatformConfigProvider.d.ts.map +1 -1
  73. package/dist/dts/Socket.d.ts +10 -10
  74. package/dist/dts/Socket.d.ts.map +1 -1
  75. package/dist/dts/Transferable.d.ts.map +1 -1
  76. package/dist/dts/Worker.d.ts +6 -6
  77. package/dist/dts/Worker.d.ts.map +1 -1
  78. package/dist/dts/WorkerRunner.d.ts +5 -5
  79. package/dist/dts/WorkerRunner.d.ts.map +1 -1
  80. package/dist/dts/internal/http/router.d.ts +1 -1
  81. package/dist/dts/internal/http/router.d.ts.map +1 -1
  82. package/dist/esm/Http/App.js +9 -7
  83. package/dist/esm/Http/App.js.map +1 -1
  84. package/dist/esm/Http/Client.js +12 -2
  85. package/dist/esm/Http/Client.js.map +1 -1
  86. package/dist/esm/Http/ClientResponse.js +5 -5
  87. package/dist/esm/Http/ClientResponse.js.map +1 -1
  88. package/dist/esm/Http/Cookies.js +7 -7
  89. package/dist/esm/Http/Cookies.js.map +1 -1
  90. package/dist/esm/Http/Headers.js +7 -7
  91. package/dist/esm/Http/Headers.js.map +1 -1
  92. package/dist/esm/Http/IncomingMessage.js +3 -3
  93. package/dist/esm/Http/IncomingMessage.js.map +1 -1
  94. package/dist/esm/Http/Middleware.js +10 -0
  95. package/dist/esm/Http/Middleware.js.map +1 -1
  96. package/dist/esm/Http/Multiplex.js.map +1 -1
  97. package/dist/esm/Http/Router.js.map +1 -1
  98. package/dist/esm/Http/UrlParams.js +13 -13
  99. package/dist/esm/Http/UrlParams.js.map +1 -1
  100. package/dist/esm/PlatformConfigProvider.js +2 -2
  101. package/dist/esm/PlatformConfigProvider.js.map +1 -1
  102. package/dist/esm/Socket.js +6 -6
  103. package/dist/esm/Socket.js.map +1 -1
  104. package/dist/esm/Transferable.js +1 -1
  105. package/dist/esm/Transferable.js.map +1 -1
  106. package/dist/esm/WorkerRunner.js.map +1 -1
  107. package/dist/esm/internal/command.js +1 -1
  108. package/dist/esm/internal/command.js.map +1 -1
  109. package/dist/esm/internal/fileSystem.js +2 -2
  110. package/dist/esm/internal/fileSystem.js.map +1 -1
  111. package/dist/esm/internal/http/client.js +18 -13
  112. package/dist/esm/internal/http/client.js.map +1 -1
  113. package/dist/esm/internal/http/clientResponse.js +2 -2
  114. package/dist/esm/internal/http/clientResponse.js.map +1 -1
  115. package/dist/esm/internal/http/middleware.js +7 -2
  116. package/dist/esm/internal/http/middleware.js.map +1 -1
  117. package/dist/esm/internal/http/multipart.js +4 -4
  118. package/dist/esm/internal/http/multipart.js.map +1 -1
  119. package/dist/esm/internal/http/multiplex.js +2 -2
  120. package/dist/esm/internal/http/multiplex.js.map +1 -1
  121. package/dist/esm/internal/http/router.js +2 -1
  122. package/dist/esm/internal/http/router.js.map +1 -1
  123. package/dist/esm/internal/worker.js +7 -7
  124. package/dist/esm/internal/worker.js.map +1 -1
  125. package/dist/esm/internal/workerRunner.js +14 -13
  126. package/dist/esm/internal/workerRunner.js.map +1 -1
  127. package/package.json +3 -3
  128. package/src/Command.ts +3 -3
  129. package/src/Http/App.ts +21 -17
  130. package/src/Http/Client.ts +105 -90
  131. package/src/Http/ClientResponse.ts +7 -7
  132. package/src/Http/Cookies.ts +9 -9
  133. package/src/Http/Headers.ts +12 -12
  134. package/src/Http/IncomingMessage.ts +16 -6
  135. package/src/Http/Middleware.ts +30 -6
  136. package/src/Http/Multiplex.ts +38 -38
  137. package/src/Http/Router.ts +136 -134
  138. package/src/Http/Server.ts +16 -16
  139. package/src/Http/ServerRequest.ts +1 -1
  140. package/src/Http/UrlParams.ts +15 -15
  141. package/src/PlatformConfigProvider.ts +2 -2
  142. package/src/Socket.ts +6 -6
  143. package/src/Transferable.ts +1 -1
  144. package/src/Worker.ts +9 -9
  145. package/src/WorkerRunner.ts +5 -4
  146. package/src/internal/command.ts +12 -6
  147. package/src/internal/fileSystem.ts +2 -2
  148. package/src/internal/http/client.ts +221 -204
  149. package/src/internal/http/clientResponse.ts +2 -2
  150. package/src/internal/http/middleware.ts +24 -1
  151. package/src/internal/http/multipart.ts +4 -4
  152. package/src/internal/http/multiplex.ts +54 -54
  153. package/src/internal/http/router.ts +121 -104
  154. package/src/internal/http/server.ts +17 -17
  155. package/src/internal/http/serverRequest.ts +1 -1
  156. package/src/internal/worker.ts +14 -14
  157. package/src/internal/workerRunner.ts +20 -16
@@ -32,13 +32,13 @@ export const PlatformRunner = Context.GenericTag<WorkerRunner.PlatformRunner>(
32
32
  /** @internal */
33
33
  export const make = <I, R, E, O>(
34
34
  process: (request: I) => Stream.Stream<O, E, R> | Effect.Effect<O, E, R>,
35
- options?: WorkerRunner.Runner.Options<I, E, O>
35
+ options?: WorkerRunner.Runner.Options<I, O, E>
36
36
  ) =>
37
37
  Effect.gen(function*(_) {
38
38
  const scope = yield* _(Scope.fork(yield* _(Effect.scope), ExecutionStrategy.parallel))
39
39
  const fiber = Option.getOrThrow(Fiber.getCurrentFiber())
40
40
  const shutdown = Effect.zipRight(
41
- Scope.close(scope, Exit.unit),
41
+ Scope.close(scope, Exit.void),
42
42
  Fiber.interruptFork(fiber)
43
43
  )
44
44
  const platform = yield* _(PlatformRunner)
@@ -51,19 +51,20 @@ export const make = <I, R, E, O>(
51
51
  yield* _(
52
52
  Queue.take(backing.queue),
53
53
  options?.decode ?
54
- Effect.flatMap((req): Effect.Effect<Worker.Worker.Request<I>, WorkerError> => {
54
+ Effect.flatMap((msg): Effect.Effect<readonly [portId: number, Worker.Worker.Request<I>], WorkerError> => {
55
+ const req = msg[1]
55
56
  if (req[1] === 1) {
56
- return Effect.succeed(req)
57
+ return Effect.succeed(msg)
57
58
  }
58
59
 
59
- return Effect.map(options.decode!(req[2]), (data) => [req[0], req[1], data, req[3]])
60
+ return Effect.map(options.decode!(req[2]), (data) => [msg[0], [req[0], req[1], data, req[3]]])
60
61
  }) :
61
62
  identity,
62
- Effect.tap((req) => {
63
+ Effect.tap(([portId, req]) => {
63
64
  const id = req[0]
64
65
  if (req[1] === 1) {
65
66
  const fiber = fiberMap.get(id)
66
- if (!fiber) return Effect.unit
67
+ if (!fiber) return Effect.void
67
68
  return Fiber.interrupt(fiber)
68
69
  }
69
70
 
@@ -79,7 +80,7 @@ export const make = <I, R, E, O>(
79
80
  ? Effect.provideService(options.encodeOutput(req[2], data), Transferable.Collector, collector)
80
81
  : Effect.succeed(data),
81
82
  Effect.flatMap((payload) =>
82
- backing.send([id, 0, [payload]], [
83
+ backing.send(portId, [id, 0, [payload]], [
83
84
  ...transfers,
84
85
  ...collector.unsafeRead()
85
86
  ])
@@ -93,7 +94,7 @@ export const make = <I, R, E, O>(
93
94
  if (options?.encodeOutput === undefined) {
94
95
  const payload = Chunk.toReadonlyArray(data)
95
96
  const transfers = options?.transfers ? payload.flatMap(options.transfers) : undefined
96
- return backing.send([id, 0, payload], transfers)
97
+ return backing.send(portId, [id, 0, payload], transfers)
97
98
  }
98
99
 
99
100
  const transfers: Array<unknown> = []
@@ -110,12 +111,12 @@ export const make = <I, R, E, O>(
110
111
  Effect.provideService(Transferable.Collector, collector),
111
112
  Effect.flatMap((payload) => {
112
113
  collector.unsafeRead().forEach((transfer) => transfers.push(transfer))
113
- return backing.send([id, 0, payload], transfers)
114
+ return backing.send(portId, [id, 0, payload], transfers)
114
115
  })
115
116
  )
116
117
  }),
117
118
  Stream.runDrain,
118
- Effect.andThen(backing.send([id, 1]))
119
+ Effect.andThen(backing.send(portId, [id, 1]))
119
120
  )
120
121
 
121
122
  if (req[3]) {
@@ -131,7 +132,8 @@ export const make = <I, R, E, O>(
131
132
 
132
133
  return effect
133
134
  }),
134
- Effect.catchIf(isWorkerError, (error) => backing.send([id, 3, WorkerError.encodeCause(Cause.fail(error))])),
135
+ Effect.catchIf(isWorkerError, (error) =>
136
+ backing.send(portId, [id, 3, WorkerError.encodeCause(Cause.fail(error))])),
135
137
  Effect.catchAllCause((cause) =>
136
138
  Either.match(Cause.failureOrCause(cause), {
137
139
  onLeft: (error) => {
@@ -146,15 +148,17 @@ export const make = <I, R, E, O>(
146
148
  )
147
149
  : Effect.succeed(error),
148
150
  Effect.flatMap((payload) =>
149
- backing.send([id, 2, payload as any], [
151
+ backing.send(portId, [id, 2, payload as any], [
150
152
  ...transfers,
151
153
  ...collector.unsafeRead()
152
154
  ])
153
155
  ),
154
- Effect.catchAllCause((cause) => backing.send([id, 3, WorkerError.encodeCause(cause)]))
156
+ Effect.catchAllCause((cause) =>
157
+ backing.send(portId, [id, 3, WorkerError.encodeCause(cause)])
158
+ )
155
159
  )
156
160
  },
157
- onRight: (cause) => backing.send([id, 3, WorkerError.encodeCause(cause)])
161
+ onRight: (cause) => backing.send(portId, [id, 3, WorkerError.encodeCause(cause)])
158
162
  })
159
163
  ),
160
164
  Effect.ensuring(Effect.sync(() => fiberMap.delete(id))),
@@ -170,7 +174,7 @@ export const make = <I, R, E, O>(
170
174
  /** @internal */
171
175
  export const layer = <I, R, E, O>(
172
176
  process: (request: I) => Stream.Stream<O, E, R> | Effect.Effect<O, E, R>,
173
- options?: WorkerRunner.Runner.Options<I, E, O>
177
+ options?: WorkerRunner.Runner.Options<I, O, E>
174
178
  ): Layer.Layer<never, WorkerError, WorkerRunner.PlatformRunner | R> => Layer.scopedDiscard(make(process, options))
175
179
 
176
180
  /** @internal */