@effect/platform 0.43.10 → 0.44.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 (235) hide show
  1. package/dist/cjs/Error.js +4 -0
  2. package/dist/cjs/Error.js.map +1 -1
  3. package/dist/cjs/Http/App.js.map +1 -1
  4. package/dist/cjs/Http/Body.js.map +1 -1
  5. package/dist/cjs/Http/Client.js.map +1 -1
  6. package/dist/cjs/Http/ClientError.js +4 -0
  7. package/dist/cjs/Http/ClientError.js.map +1 -1
  8. package/dist/cjs/Http/ClientResponse.js.map +1 -1
  9. package/dist/cjs/Http/IncomingMessage.js.map +1 -1
  10. package/dist/cjs/Http/Multipart.js.map +1 -1
  11. package/dist/cjs/Http/Server.js +26 -1
  12. package/dist/cjs/Http/Server.js.map +1 -1
  13. package/dist/cjs/Http/ServerError.js.map +1 -1
  14. package/dist/cjs/Http/ServerResponse.js.map +1 -1
  15. package/dist/cjs/HttpServer.js +7 -1
  16. package/dist/cjs/HttpServer.js.map +1 -1
  17. package/dist/cjs/KeyValueStore.js.map +1 -1
  18. package/dist/cjs/Path.js.map +1 -1
  19. package/dist/cjs/Transferable.js +51 -48
  20. package/dist/cjs/Transferable.js.map +1 -1
  21. package/dist/cjs/Worker.js +6 -1
  22. package/dist/cjs/Worker.js.map +1 -1
  23. package/dist/cjs/WorkerError.js +4 -0
  24. package/dist/cjs/WorkerError.js.map +1 -1
  25. package/dist/cjs/index.js +62 -0
  26. package/dist/cjs/index.js.map +1 -0
  27. package/dist/cjs/internal/commandExecutor.js +1 -1
  28. package/dist/cjs/internal/commandExecutor.js.map +1 -1
  29. package/dist/cjs/internal/effectify.js.map +1 -1
  30. package/dist/cjs/internal/fileSystem.js +1 -1
  31. package/dist/cjs/internal/fileSystem.js.map +1 -1
  32. package/dist/cjs/internal/http/body.js.map +1 -1
  33. package/dist/cjs/internal/http/client.js +2 -2
  34. package/dist/cjs/internal/http/client.js.map +1 -1
  35. package/dist/cjs/internal/http/etag.js +1 -1
  36. package/dist/cjs/internal/http/etag.js.map +1 -1
  37. package/dist/cjs/internal/http/multipart.js.map +1 -1
  38. package/dist/cjs/internal/http/platform.js +1 -1
  39. package/dist/cjs/internal/http/platform.js.map +1 -1
  40. package/dist/cjs/internal/http/router.js +1 -1
  41. package/dist/cjs/internal/http/router.js.map +1 -1
  42. package/dist/cjs/internal/http/server.js +23 -2
  43. package/dist/cjs/internal/http/server.js.map +1 -1
  44. package/dist/cjs/internal/http/serverRequest.js +1 -1
  45. package/dist/cjs/internal/http/serverRequest.js.map +1 -1
  46. package/dist/cjs/internal/http/serverResponse.js.map +1 -1
  47. package/dist/cjs/internal/keyValueStore.js +2 -2
  48. package/dist/cjs/internal/keyValueStore.js.map +1 -1
  49. package/dist/cjs/internal/path.js +9 -4
  50. package/dist/cjs/internal/path.js.map +1 -1
  51. package/dist/cjs/internal/terminal.js +1 -1
  52. package/dist/cjs/internal/terminal.js.map +1 -1
  53. package/dist/cjs/internal/worker.js +16 -12
  54. package/dist/cjs/internal/worker.js.map +1 -1
  55. package/dist/cjs/internal/workerError.js.map +1 -1
  56. package/dist/cjs/internal/workerRunner.js +15 -12
  57. package/dist/cjs/internal/workerRunner.js.map +1 -1
  58. package/dist/dts/Command.d.ts +9 -9
  59. package/dist/dts/Command.d.ts.map +1 -1
  60. package/dist/dts/CommandExecutor.d.ts +13 -13
  61. package/dist/dts/CommandExecutor.d.ts.map +1 -1
  62. package/dist/dts/Effectify.d.ts +55 -55
  63. package/dist/dts/Effectify.d.ts.map +1 -1
  64. package/dist/dts/Error.d.ts +2 -6
  65. package/dist/dts/Error.d.ts.map +1 -1
  66. package/dist/dts/FileSystem.d.ts +35 -35
  67. package/dist/dts/FileSystem.d.ts.map +1 -1
  68. package/dist/dts/Http/App.d.ts +5 -5
  69. package/dist/dts/Http/App.d.ts.map +1 -1
  70. package/dist/dts/Http/Body.d.ts +10 -11
  71. package/dist/dts/Http/Body.d.ts.map +1 -1
  72. package/dist/dts/Http/Client.d.ts +32 -32
  73. package/dist/dts/Http/Client.d.ts.map +1 -1
  74. package/dist/dts/Http/ClientError.d.ts +2 -6
  75. package/dist/dts/Http/ClientError.d.ts.map +1 -1
  76. package/dist/dts/Http/ClientRequest.d.ts +16 -16
  77. package/dist/dts/Http/ClientRequest.d.ts.map +1 -1
  78. package/dist/dts/Http/ClientResponse.d.ts +3 -3
  79. package/dist/dts/Http/ClientResponse.d.ts.map +1 -1
  80. package/dist/dts/Http/Etag.d.ts +2 -2
  81. package/dist/dts/Http/Etag.d.ts.map +1 -1
  82. package/dist/dts/Http/IncomingMessage.d.ts +10 -10
  83. package/dist/dts/Http/IncomingMessage.d.ts.map +1 -1
  84. package/dist/dts/Http/Middleware.d.ts +3 -3
  85. package/dist/dts/Http/Multipart.d.ts +18 -19
  86. package/dist/dts/Http/Multipart.d.ts.map +1 -1
  87. package/dist/dts/Http/Multiplex.d.ts +4 -4
  88. package/dist/dts/Http/Multiplex.d.ts.map +1 -1
  89. package/dist/dts/Http/Platform.d.ts +3 -3
  90. package/dist/dts/Http/Platform.d.ts.map +1 -1
  91. package/dist/dts/Http/Router.d.ts +10 -10
  92. package/dist/dts/Http/Router.d.ts.map +1 -1
  93. package/dist/dts/Http/Server.d.ts +39 -14
  94. package/dist/dts/Http/Server.d.ts.map +1 -1
  95. package/dist/dts/Http/ServerError.d.ts +2 -3
  96. package/dist/dts/Http/ServerError.d.ts.map +1 -1
  97. package/dist/dts/Http/ServerRequest.d.ts +9 -9
  98. package/dist/dts/Http/ServerRequest.d.ts.map +1 -1
  99. package/dist/dts/Http/ServerResponse.d.ts +7 -7
  100. package/dist/dts/Http/ServerResponse.d.ts.map +1 -1
  101. package/dist/dts/Http/UrlParams.d.ts +4 -4
  102. package/dist/dts/HttpServer.d.ts +24 -0
  103. package/dist/dts/HttpServer.d.ts.map +1 -1
  104. package/dist/dts/KeyValueStore.d.ts +21 -21
  105. package/dist/dts/KeyValueStore.d.ts.map +1 -1
  106. package/dist/dts/Path.d.ts +3 -3
  107. package/dist/dts/Path.d.ts.map +1 -1
  108. package/dist/dts/Runtime.d.ts +1 -1
  109. package/dist/dts/Runtime.d.ts.map +1 -1
  110. package/dist/dts/Terminal.d.ts +5 -5
  111. package/dist/dts/Terminal.d.ts.map +1 -1
  112. package/dist/dts/Transferable.d.ts +35 -13
  113. package/dist/dts/Transferable.d.ts.map +1 -1
  114. package/dist/dts/Worker.d.ts +58 -41
  115. package/dist/dts/Worker.d.ts.map +1 -1
  116. package/dist/dts/WorkerError.d.ts +3 -7
  117. package/dist/dts/WorkerError.d.ts.map +1 -1
  118. package/dist/dts/WorkerRunner.d.ts +13 -13
  119. package/dist/dts/WorkerRunner.d.ts.map +1 -1
  120. package/dist/dts/index.d.ts +61 -0
  121. package/dist/dts/index.d.ts.map +1 -0
  122. package/dist/esm/Error.js +3 -0
  123. package/dist/esm/Error.js.map +1 -1
  124. package/dist/esm/Http/App.js.map +1 -1
  125. package/dist/esm/Http/Body.js.map +1 -1
  126. package/dist/esm/Http/Client.js.map +1 -1
  127. package/dist/esm/Http/ClientError.js +3 -0
  128. package/dist/esm/Http/ClientError.js.map +1 -1
  129. package/dist/esm/Http/ClientResponse.js.map +1 -1
  130. package/dist/esm/Http/IncomingMessage.js.map +1 -1
  131. package/dist/esm/Http/Multipart.js.map +1 -1
  132. package/dist/esm/Http/Server.js +25 -0
  133. package/dist/esm/Http/Server.js.map +1 -1
  134. package/dist/esm/Http/ServerError.js.map +1 -1
  135. package/dist/esm/Http/ServerResponse.js.map +1 -1
  136. package/dist/esm/HttpServer.js +24 -0
  137. package/dist/esm/HttpServer.js.map +1 -1
  138. package/dist/esm/KeyValueStore.js.map +1 -1
  139. package/dist/esm/Path.js.map +1 -1
  140. package/dist/esm/Transferable.js +48 -45
  141. package/dist/esm/Transferable.js.map +1 -1
  142. package/dist/esm/Worker.js +5 -0
  143. package/dist/esm/Worker.js.map +1 -1
  144. package/dist/esm/WorkerError.js +3 -0
  145. package/dist/esm/WorkerError.js.map +1 -1
  146. package/dist/esm/index.js +61 -0
  147. package/dist/esm/index.js.map +1 -0
  148. package/dist/esm/internal/commandExecutor.js +2 -2
  149. package/dist/esm/internal/commandExecutor.js.map +1 -1
  150. package/dist/esm/internal/effectify.js.map +1 -1
  151. package/dist/esm/internal/fileSystem.js +2 -2
  152. package/dist/esm/internal/fileSystem.js.map +1 -1
  153. package/dist/esm/internal/http/body.js.map +1 -1
  154. package/dist/esm/internal/http/client.js +2 -2
  155. package/dist/esm/internal/http/client.js.map +1 -1
  156. package/dist/esm/internal/http/etag.js +1 -1
  157. package/dist/esm/internal/http/etag.js.map +1 -1
  158. package/dist/esm/internal/http/multipart.js.map +1 -1
  159. package/dist/esm/internal/http/platform.js +1 -1
  160. package/dist/esm/internal/http/platform.js.map +1 -1
  161. package/dist/esm/internal/http/router.js +1 -1
  162. package/dist/esm/internal/http/router.js.map +1 -1
  163. package/dist/esm/internal/http/server.js +18 -1
  164. package/dist/esm/internal/http/server.js.map +1 -1
  165. package/dist/esm/internal/http/serverRequest.js +1 -1
  166. package/dist/esm/internal/http/serverRequest.js.map +1 -1
  167. package/dist/esm/internal/http/serverResponse.js.map +1 -1
  168. package/dist/esm/internal/keyValueStore.js +2 -2
  169. package/dist/esm/internal/keyValueStore.js.map +1 -1
  170. package/dist/esm/internal/path.js +3 -3
  171. package/dist/esm/internal/path.js.map +1 -1
  172. package/dist/esm/internal/terminal.js +2 -2
  173. package/dist/esm/internal/terminal.js.map +1 -1
  174. package/dist/esm/internal/worker.js +14 -11
  175. package/dist/esm/internal/worker.js.map +1 -1
  176. package/dist/esm/internal/workerError.js.map +1 -1
  177. package/dist/esm/internal/workerRunner.js +15 -12
  178. package/dist/esm/internal/workerRunner.js.map +1 -1
  179. package/package.json +11 -3
  180. package/src/Command.ts +9 -9
  181. package/src/CommandExecutor.ts +13 -13
  182. package/src/Effectify.ts +55 -55
  183. package/src/Error.ts +2 -3
  184. package/src/FileSystem.ts +35 -35
  185. package/src/Http/App.ts +5 -5
  186. package/src/Http/Body.ts +12 -13
  187. package/src/Http/Client.ts +37 -37
  188. package/src/Http/ClientError.ts +2 -3
  189. package/src/Http/ClientRequest.ts +17 -17
  190. package/src/Http/ClientResponse.ts +8 -5
  191. package/src/Http/Etag.ts +2 -2
  192. package/src/Http/IncomingMessage.ts +27 -23
  193. package/src/Http/Middleware.ts +4 -4
  194. package/src/Http/Multipart.ts +22 -25
  195. package/src/Http/Multiplex.ts +4 -4
  196. package/src/Http/Platform.ts +3 -3
  197. package/src/Http/Router.ts +16 -16
  198. package/src/Http/Server.ts +53 -18
  199. package/src/Http/ServerError.ts +2 -3
  200. package/src/Http/ServerRequest.ts +22 -22
  201. package/src/Http/ServerResponse.ts +9 -10
  202. package/src/Http/UrlParams.ts +6 -6
  203. package/src/HttpServer.ts +24 -0
  204. package/src/KeyValueStore.ts +23 -23
  205. package/src/Path.ts +3 -3
  206. package/src/Runtime.ts +1 -1
  207. package/src/Terminal.ts +4 -4
  208. package/src/Transferable.ts +88 -70
  209. package/src/Worker.ts +73 -57
  210. package/src/WorkerError.ts +3 -4
  211. package/src/WorkerRunner.ts +21 -21
  212. package/src/index.ts +74 -0
  213. package/src/internal/command.ts +7 -7
  214. package/src/internal/commandExecutor.ts +3 -3
  215. package/src/internal/effectify.ts +1 -1
  216. package/src/internal/fileSystem.ts +3 -3
  217. package/src/internal/http/body.ts +12 -12
  218. package/src/internal/http/client.ts +42 -46
  219. package/src/internal/http/clientRequest.ts +15 -15
  220. package/src/internal/http/clientResponse.ts +18 -18
  221. package/src/internal/http/etag.ts +1 -1
  222. package/src/internal/http/middleware.ts +4 -4
  223. package/src/internal/http/multipart.ts +32 -39
  224. package/src/internal/http/multiplex.ts +5 -5
  225. package/src/internal/http/platform.ts +2 -2
  226. package/src/internal/http/router.ts +14 -14
  227. package/src/internal/http/server.ts +60 -23
  228. package/src/internal/http/serverRequest.ts +24 -24
  229. package/src/internal/http/serverResponse.ts +11 -11
  230. package/src/internal/keyValueStore.ts +7 -7
  231. package/src/internal/path.ts +4 -4
  232. package/src/internal/terminal.ts +2 -2
  233. package/src/internal/worker.ts +55 -39
  234. package/src/internal/workerError.ts +1 -1
  235. package/src/internal/workerRunner.ts +55 -30
package/src/Worker.ts CHANGED
@@ -24,8 +24,8 @@ import type { WorkerError } from "./WorkerError.js"
24
24
  * @category models
25
25
  */
26
26
  export interface BackingWorker<I, O> {
27
- readonly fiber: Fiber.Fiber<WorkerError, never>
28
- readonly send: (message: I, transfers?: ReadonlyArray<unknown>) => Effect.Effect<never, WorkerError, void>
27
+ readonly fiber: Fiber.Fiber<never, WorkerError>
28
+ readonly send: (message: I, transfers?: ReadonlyArray<unknown>) => Effect.Effect<void, WorkerError>
29
29
  readonly queue: Queue.Dequeue<BackingWorker.Message<O>>
30
30
  }
31
31
 
@@ -59,7 +59,7 @@ export type PlatformWorkerTypeId = typeof PlatformWorkerTypeId
59
59
  */
60
60
  export interface PlatformWorker {
61
61
  readonly [PlatformWorkerTypeId]: PlatformWorkerTypeId
62
- readonly spawn: <I, O>(worker: unknown) => Effect.Effect<Scope.Scope, WorkerError, BackingWorker<I, O>>
62
+ readonly spawn: <I, O>(worker: unknown) => Effect.Effect<BackingWorker<I, O>, WorkerError, Scope.Scope>
63
63
  }
64
64
 
65
65
  /**
@@ -74,8 +74,24 @@ export const PlatformWorker: Context.Tag<PlatformWorker, PlatformWorker> = inter
74
74
  */
75
75
  export interface Worker<I, E, O> {
76
76
  readonly id: number
77
- readonly execute: (message: I) => Stream.Stream<never, E | WorkerError, O>
78
- readonly executeEffect: (message: I) => Effect.Effect<never, E | WorkerError, O>
77
+ readonly execute: (message: I) => Stream.Stream<O, E | WorkerError>
78
+ readonly executeEffect: (message: I) => Effect.Effect<O, E | WorkerError>
79
+ }
80
+
81
+ /**
82
+ * @since 1.0.0
83
+ * @category models
84
+ */
85
+ export interface Spawner {
86
+ readonly _: unique symbol
87
+ }
88
+
89
+ /**
90
+ * @since 1.0.0
91
+ * @category models
92
+ */
93
+ export interface SpawnerFn<W = unknown> {
94
+ (id: number): W
79
95
  }
80
96
 
81
97
  /**
@@ -87,9 +103,8 @@ export declare namespace Worker {
87
103
  * @since 1.0.0
88
104
  * @category models
89
105
  */
90
- export interface Options<I, W = unknown> {
91
- readonly spawn: (id: number) => W
92
- readonly encode?: (message: I) => Effect.Effect<never, WorkerError, unknown>
106
+ export interface Options<I> {
107
+ readonly encode?: (message: I) => Effect.Effect<unknown, WorkerError>
93
108
  readonly transfers?: (message: I) => ReadonlyArray<unknown>
94
109
  readonly permits?: number
95
110
  readonly queue?: WorkerQueue<I>
@@ -101,7 +116,7 @@ export declare namespace Worker {
101
116
  * @category models
102
117
  */
103
118
  export type Request<I = unknown> =
104
- | readonly [id: number, data: 0, I, trace?: Span]
119
+ | readonly [id: number, data: 0, I, trace: Span | undefined]
105
120
  | readonly [id: number, interrupt: 1]
106
121
 
107
122
  /**
@@ -127,10 +142,10 @@ export declare namespace Worker {
127
142
  * @category models
128
143
  */
129
144
  export interface WorkerPool<I, E, O> {
130
- readonly backing: Pool.Pool<WorkerError, Worker<I, E, O>>
131
- readonly broadcast: (message: I) => Effect.Effect<never, E | WorkerError, void>
132
- readonly execute: (message: I) => Stream.Stream<never, E | WorkerError, O>
133
- readonly executeEffect: (message: I) => Effect.Effect<never, E | WorkerError, O>
145
+ readonly backing: Pool.Pool<Worker<I, E, O>, WorkerError>
146
+ readonly broadcast: (message: I) => Effect.Effect<void, E | WorkerError>
147
+ readonly execute: (message: I) => Stream.Stream<O, E | WorkerError>
148
+ readonly executeEffect: (message: I) => Effect.Effect<O, E | WorkerError>
134
149
  }
135
150
 
136
151
  /**
@@ -142,13 +157,13 @@ export declare namespace WorkerPool {
142
157
  * @since 1.0.0
143
158
  * @category models
144
159
  */
145
- export type Options<I, W = unknown> =
146
- & Worker.Options<I, W>
160
+ export type Options<I> =
161
+ & Worker.Options<I>
147
162
  & ({
148
- readonly onCreate?: (worker: Worker<I, unknown, unknown>) => Effect.Effect<never, WorkerError, void>
163
+ readonly onCreate?: (worker: Worker<I, unknown, unknown>) => Effect.Effect<void, WorkerError>
149
164
  readonly size: number
150
165
  } | {
151
- readonly onCreate?: (worker: Worker<I, unknown, unknown>) => Effect.Effect<never, WorkerError, void>
166
+ readonly onCreate?: (worker: Worker<I, unknown, unknown>) => Effect.Effect<void, WorkerError>
152
167
  readonly minSize: number
153
168
  readonly maxSize: number
154
169
  readonly timeToLive: Duration.DurationInput
@@ -160,9 +175,9 @@ export declare namespace WorkerPool {
160
175
  * @since 1.0.0
161
176
  */
162
177
  export interface WorkerQueue<I> {
163
- readonly offer: (id: number, item: I, span: Option.Option<Tracer.Span>) => Effect.Effect<never, never, void>
164
- readonly take: Effect.Effect<never, never, readonly [id: number, item: I, span: Option.Option<Tracer.Span>]>
165
- readonly shutdown: Effect.Effect<never, never, void>
178
+ readonly offer: (id: number, item: I, span: Option.Option<Tracer.Span>) => Effect.Effect<void>
179
+ readonly take: Effect.Effect<readonly [id: number, item: I, span: Option.Option<Tracer.Span>]>
180
+ readonly shutdown: Effect.Effect<void>
166
181
  }
167
182
 
168
183
  /**
@@ -185,7 +200,7 @@ export interface WorkerManager {
185
200
  readonly [WorkerManagerTypeId]: WorkerManagerTypeId
186
201
  readonly spawn: <I, E, O>(
187
202
  options: Worker.Options<I>
188
- ) => Effect.Effect<Scope.Scope, WorkerError, Worker<I, E, O>>
203
+ ) => Effect.Effect<Worker<I, E, O>, WorkerError, Scope.Scope | Spawner>
189
204
  }
190
205
 
191
206
  /**
@@ -198,32 +213,30 @@ export const WorkerManager: Context.Tag<WorkerManager, WorkerManager> = internal
198
213
  * @since 1.0.0
199
214
  * @category constructors
200
215
  */
201
- export const makeManager: Effect.Effect<PlatformWorker, never, WorkerManager> = internal.makeManager
216
+ export const makeManager: Effect.Effect<WorkerManager, never, PlatformWorker> = internal.makeManager
202
217
 
203
218
  /**
204
219
  * @since 1.0.0
205
220
  * @category layers
206
221
  */
207
- export const layerManager: Layer.Layer<PlatformWorker, never, WorkerManager> = internal.layerManager
222
+ export const layerManager: Layer.Layer<WorkerManager, never, PlatformWorker> = internal.layerManager
208
223
 
209
224
  /**
210
225
  * @since 1.0.0
211
226
  * @category constructors
212
227
  */
213
- export const makePool: <W>() => <I, E, O>(
214
- options: WorkerPool.Options<I, W>
215
- ) => Effect.Effect<WorkerManager | Scope.Scope, never, WorkerPool<I, E, O>> = internal.makePool
228
+ export const makePool: <I, E, O>(
229
+ options: WorkerPool.Options<I>
230
+ ) => Effect.Effect<WorkerPool<I, E, O>, never, WorkerManager | Spawner | Scope.Scope> = internal.makePool
216
231
 
217
232
  /**
218
233
  * @since 1.0.0
219
234
  * @category constructors
220
235
  */
221
- export const makePoolLayer: <W>(
222
- managerLayer: Layer.Layer<never, never, WorkerManager>
223
- ) => <Tag, I, E, O>(
236
+ export const makePoolLayer: <Tag, I, E, O>(
224
237
  tag: Context.Tag<Tag, WorkerPool<I, E, O>>,
225
- options: WorkerPool.Options<I, W>
226
- ) => Layer.Layer<never, never, Tag> = internal.makePoolLayer
238
+ options: WorkerPool.Options<I>
239
+ ) => Layer.Layer<Tag, never, WorkerManager | Spawner> = internal.makePoolLayer
227
240
 
228
241
  /**
229
242
  * @since 1.0.0
@@ -234,12 +247,12 @@ export interface SerializedWorker<I extends Schema.TaggedRequest.Any> {
234
247
  readonly execute: <Req extends I>(
235
248
  message: Req
236
249
  ) => Req extends Serializable.WithResult<infer R, infer _IE, infer E, infer _IA, infer A>
237
- ? Stream.Stream<R, E | WorkerError | ParseResult.ParseError, A>
250
+ ? Stream.Stream<A, E | WorkerError | ParseResult.ParseError, R>
238
251
  : never
239
252
  readonly executeEffect: <Req extends I>(
240
253
  message: Req
241
254
  ) => Req extends Serializable.WithResult<infer R, infer _IE, infer E, infer _IA, infer A>
242
- ? Effect.Effect<R, E | WorkerError | ParseResult.ParseError, A>
255
+ ? Effect.Effect<A, E | WorkerError | ParseResult.ParseError, R>
243
256
  : never
244
257
  }
245
258
 
@@ -252,11 +265,10 @@ export declare namespace SerializedWorker {
252
265
  * @since 1.0.0
253
266
  * @category models
254
267
  */
255
- export type Options<I, W = unknown> = Extract<I, { readonly _tag: "InitialMessage" }> extends never ?
256
- BaseOptions<I, W> & {
268
+ export type Options<I> = Extract<I, { readonly _tag: "InitialMessage" }> extends never ? BaseOptions<I> & {
257
269
  readonly initialMessage?: LazyArg<I>
258
270
  }
259
- : BaseOptions<I, W> & {
271
+ : BaseOptions<I> & {
260
272
  readonly initialMessage: LazyArg<Extract<I, { readonly _tag: "InitialMessage" }>>
261
273
  }
262
274
 
@@ -264,8 +276,7 @@ export declare namespace SerializedWorker {
264
276
  * @since 1.0.0
265
277
  * @category models
266
278
  */
267
- export interface BaseOptions<I, W = unknown> {
268
- readonly spawn: (id: number) => W
279
+ export interface BaseOptions<I> {
269
280
  readonly permits?: number
270
281
  readonly queue?: WorkerQueue<I>
271
282
  }
@@ -276,21 +287,21 @@ export declare namespace SerializedWorker {
276
287
  * @category models
277
288
  */
278
289
  export interface SerializedWorkerPool<I extends Schema.TaggedRequest.Any> {
279
- readonly backing: Pool.Pool<WorkerError, SerializedWorker<I>>
290
+ readonly backing: Pool.Pool<SerializedWorker<I>, WorkerError>
280
291
  readonly broadcast: <Req extends I>(
281
292
  message: Req
282
293
  ) => Req extends Serializable.WithResult<infer R, infer _IE, infer E, infer _IA, infer _A>
283
- ? Effect.Effect<R, E | WorkerError | ParseResult.ParseError, void>
294
+ ? Effect.Effect<void, E | WorkerError | ParseResult.ParseError, R>
284
295
  : never
285
296
  readonly execute: <Req extends I>(
286
297
  message: Req
287
298
  ) => Req extends Serializable.WithResult<infer R, infer _IE, infer E, infer _IA, infer A>
288
- ? Stream.Stream<R, E | WorkerError | ParseResult.ParseError, A>
299
+ ? Stream.Stream<A, E | WorkerError | ParseResult.ParseError, R>
289
300
  : never
290
301
  readonly executeEffect: <Req extends I>(
291
302
  message: Req
292
303
  ) => Req extends Serializable.WithResult<infer R, infer _IE, infer E, infer _IA, infer A>
293
- ? Effect.Effect<R, E | WorkerError | ParseResult.ParseError, A>
304
+ ? Effect.Effect<A, E | WorkerError | ParseResult.ParseError, R>
294
305
  : never
295
306
  }
296
307
 
@@ -303,13 +314,13 @@ export declare namespace SerializedWorkerPool {
303
314
  * @since 1.0.0
304
315
  * @category models
305
316
  */
306
- export type Options<I, W = unknown> =
307
- & SerializedWorker.Options<I, W>
317
+ export type Options<I> =
318
+ & SerializedWorker.Options<I>
308
319
  & ({
309
- readonly onCreate?: (worker: Worker<I, unknown, unknown>) => Effect.Effect<never, WorkerError, void>
320
+ readonly onCreate?: (worker: Worker<I, unknown, unknown>) => Effect.Effect<void, WorkerError>
310
321
  readonly size: number
311
322
  } | {
312
- readonly onCreate?: (worker: Worker<I, unknown, unknown>) => Effect.Effect<never, WorkerError, void>
323
+ readonly onCreate?: (worker: Worker<I, unknown, unknown>) => Effect.Effect<void, WorkerError>
313
324
  readonly minSize: number
314
325
  readonly maxSize: number
315
326
  readonly timeToLive: Duration.DurationInput
@@ -320,25 +331,30 @@ export declare namespace SerializedWorkerPool {
320
331
  * @since 1.0.0
321
332
  * @category constructors
322
333
  */
323
- export const makeSerialized: <I extends Schema.TaggedRequest.Any, W = unknown>(
324
- options: SerializedWorker.Options<I, W>
325
- ) => Effect.Effect<WorkerManager | Scope.Scope, WorkerError, SerializedWorker<I>> = internal.makeSerialized
334
+ export const makeSerialized: <I extends Schema.TaggedRequest.Any>(
335
+ options: SerializedWorker.Options<I>
336
+ ) => Effect.Effect<SerializedWorker<I>, WorkerError, WorkerManager | Spawner | Scope.Scope> = internal.makeSerialized
326
337
 
327
338
  /**
328
339
  * @since 1.0.0
329
340
  * @category constructors
330
341
  */
331
- export const makePoolSerialized: <W>() => <I extends Schema.TaggedRequest.Any>(
332
- options: SerializedWorkerPool.Options<I, W>
333
- ) => Effect.Effect<WorkerManager | Scope.Scope, never, SerializedWorkerPool<I>> = internal.makePoolSerialized
342
+ export const makePoolSerialized: <I extends Schema.TaggedRequest.Any>(
343
+ options: SerializedWorkerPool.Options<I>
344
+ ) => Effect.Effect<SerializedWorkerPool<I>, never, WorkerManager | Spawner | Scope.Scope> = internal.makePoolSerialized
334
345
 
335
346
  /**
336
347
  * @since 1.0.0
337
348
  * @category layers
338
349
  */
339
- export const makePoolSerializedLayer: <W>(
340
- managerLayer: Layer.Layer<never, never, WorkerManager>
341
- ) => <Tag, I extends Schema.TaggedRequest.Any>(
350
+ export const makePoolSerializedLayer: <Tag, I extends Schema.TaggedRequest.Any>(
342
351
  tag: Context.Tag<Tag, SerializedWorkerPool<I>>,
343
- options: SerializedWorkerPool.Options<I, W>
344
- ) => Layer.Layer<never, never, Tag> = internal.makePoolSerializedLayer
352
+ options: SerializedWorkerPool.Options<I>
353
+ ) => Layer.Layer<Tag, never, WorkerManager | Spawner> = internal.makePoolSerializedLayer
354
+
355
+ /**
356
+ * @since 1.0.0
357
+ * @category layers
358
+ */
359
+ export const layerSpawner: <W = unknown>(spawner: SpawnerFn<W>) => Layer.Layer<Spawner, never, never> =
360
+ internal.layerSpawner
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- import type * as Data from "effect/Data"
5
4
  import * as internal from "./internal/workerError.js"
6
5
 
7
6
  /**
@@ -20,12 +19,12 @@ export type WorkerErrorTypeId = typeof WorkerErrorTypeId
20
19
  * @since 1.0.0
21
20
  * @category errors
22
21
  */
23
- export interface WorkerError extends Data.Case {
22
+ export interface WorkerError {
24
23
  readonly [WorkerErrorTypeId]: WorkerErrorTypeId
25
24
  readonly _tag: "WorkerError"
26
25
  readonly reason: "spawn" | "decode" | "send" | "unknown" | "encode"
27
26
  readonly error: unknown
28
- readonly stack?: string
27
+ readonly stack?: string | undefined
29
28
  }
30
29
 
31
30
  /**
@@ -35,5 +34,5 @@ export interface WorkerError extends Data.Case {
35
34
  export const WorkerError: (
36
35
  reason: "spawn" | "decode" | "send" | "unknown" | "encode",
37
36
  error: unknown,
38
- stack?: string
37
+ stack?: string | undefined
39
38
  ) => WorkerError = internal.WorkerError
@@ -21,7 +21,7 @@ export interface BackingRunner<I, O> {
21
21
  readonly send: (
22
22
  message: O,
23
23
  transfers?: ReadonlyArray<unknown>
24
- ) => Effect.Effect<never, never, void>
24
+ ) => Effect.Effect<void>
25
25
  }
26
26
 
27
27
  /**
@@ -55,8 +55,8 @@ export type PlatformRunnerTypeId = typeof PlatformRunnerTypeId
55
55
  export interface PlatformRunner {
56
56
  readonly [PlatformRunnerTypeId]: PlatformRunnerTypeId
57
57
  readonly start: <I, O>(
58
- shutdown: Effect.Effect<never, never, void>
59
- ) => Effect.Effect<Scope.Scope, WorkerError, BackingRunner<I, O>>
58
+ shutdown: Effect.Effect<void>
59
+ ) => Effect.Effect<BackingRunner<I, O>, WorkerError, Scope.Scope>
60
60
  }
61
61
 
62
62
  /**
@@ -77,15 +77,15 @@ export declare namespace Runner {
77
77
  export interface Options<I, E, O> {
78
78
  readonly decode?: (
79
79
  message: unknown
80
- ) => Effect.Effect<never, WorkerError, I>
80
+ ) => Effect.Effect<I, WorkerError>
81
81
  readonly encodeOutput?: (
82
82
  request: I,
83
83
  message: O
84
- ) => Effect.Effect<never, WorkerError, unknown>
84
+ ) => Effect.Effect<unknown, WorkerError>
85
85
  readonly encodeError?: (
86
86
  request: I,
87
87
  error: E
88
- ) => Effect.Effect<never, WorkerError, unknown>
88
+ ) => Effect.Effect<unknown, WorkerError>
89
89
  readonly transfers?: (message: O | E) => ReadonlyArray<unknown>
90
90
  }
91
91
  }
@@ -95,18 +95,18 @@ export declare namespace Runner {
95
95
  * @category constructors
96
96
  */
97
97
  export const make: <I, R, E, O>(
98
- process: (request: I) => Stream.Stream<R, E, O> | Effect.Effect<R, E, O>,
98
+ process: (request: I) => Stream.Stream<O, E, R> | Effect.Effect<O, E, R>,
99
99
  options?: Runner.Options<I, E, O> | undefined
100
- ) => Effect.Effect<Scope.Scope | R | PlatformRunner, WorkerError, void> = internal.make
100
+ ) => Effect.Effect<void, WorkerError, Scope.Scope | R | PlatformRunner> = internal.make
101
101
 
102
102
  /**
103
103
  * @since 1.0.0
104
104
  * @category layers
105
105
  */
106
106
  export const layer: <I, R, E, O>(
107
- process: (request: I) => Stream.Stream<R, E, O> | Effect.Effect<R, E, O>,
107
+ process: (request: I) => Stream.Stream<O, E, R> | Effect.Effect<O, E, R>,
108
108
  options?: Runner.Options<I, E, O> | undefined
109
- ) => Layer.Layer<R | PlatformRunner, WorkerError, never> = internal.layer
109
+ ) => Layer.Layer<never, WorkerError, R | PlatformRunner> = internal.layer
110
110
 
111
111
  /**
112
112
  * @since 1.0.0
@@ -132,10 +132,10 @@ export declare namespace SerializedRunner {
132
132
  > ? (
133
133
  _: S
134
134
  ) =>
135
- | Stream.Stream<any, E, O>
136
- | Effect.Effect<any, E, O>
135
+ | Stream.Stream<O, E, any>
136
+ | Effect.Effect<O, E, any>
137
137
  | Layer.Layer<any, E, any>
138
- | Layer.Layer<any, E, never>
138
+ | Layer.Layer<never, E, any>
139
139
  : never
140
140
  }
141
141
 
@@ -148,9 +148,9 @@ export declare namespace SerializedRunner {
148
148
  | Exclude<
149
149
  {
150
150
  [K in keyof Handlers]: ReturnType<Handlers[K]> extends Stream.Stream<
151
- infer R,
151
+ infer _A,
152
152
  infer _E,
153
- infer _A
153
+ infer R
154
154
  > ? R
155
155
  : never
156
156
  }[keyof Handlers],
@@ -165,7 +165,7 @@ export declare namespace SerializedRunner {
165
165
  Handlers extends Record<string, (...args: ReadonlyArray<any>) => any>
166
166
  > = Handlers["InitialMessage"] extends (
167
167
  ...args: ReadonlyArray<any>
168
- ) => Layer.Layer<infer _R, infer _E, infer A> ? A
168
+ ) => Layer.Layer<infer A, infer _E, infer _R> ? A
169
169
  : never
170
170
 
171
171
  /**
@@ -175,7 +175,7 @@ export declare namespace SerializedRunner {
175
175
  Handlers extends Record<string, (...args: ReadonlyArray<any>) => any>
176
176
  > = Handlers["InitialMessage"] extends (
177
177
  ...args: ReadonlyArray<any>
178
- ) => Layer.Layer<infer R, infer _E, infer _A> ? R
178
+ ) => Layer.Layer<infer _A, infer _E, infer R> ? R
179
179
  : never
180
180
  }
181
181
 
@@ -189,9 +189,9 @@ export const makeSerialized: <
189
189
  A extends Schema.TaggedRequest.Any,
190
190
  const Handlers extends SerializedRunner.Handlers<A>
191
191
  >(
192
- schema: Schema.Schema<R, I, A>,
192
+ schema: Schema.Schema<A, I, R>,
193
193
  handlers: Handlers
194
- ) => Effect.Effect<PlatformRunner | Scope.Scope | R | SerializedRunner.HandlersContext<Handlers>, WorkerError, void> =
194
+ ) => Effect.Effect<void, WorkerError, PlatformRunner | Scope.Scope | R | SerializedRunner.HandlersContext<Handlers>> =
195
195
  internal.makeSerialized
196
196
 
197
197
  /**
@@ -204,7 +204,7 @@ export const layerSerialized: <
204
204
  A extends Schema.TaggedRequest.Any,
205
205
  const Handlers extends SerializedRunner.Handlers<A>
206
206
  >(
207
- schema: Schema.Schema<R, I, A>,
207
+ schema: Schema.Schema<A, I, R>,
208
208
  handlers: Handlers
209
- ) => Layer.Layer<PlatformRunner | R | SerializedRunner.HandlersContext<Handlers>, WorkerError, never> =
209
+ ) => Layer.Layer<never, WorkerError, PlatformRunner | R | SerializedRunner.HandlersContext<Handlers>> =
210
210
  internal.layerSerialized
package/src/index.ts ADDED
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ export * as Command from "./Command.js"
5
+
6
+ /**
7
+ * @since 1.0.0
8
+ */
9
+ export * as CommandExecutor from "./CommandExecutor.js"
10
+
11
+ /**
12
+ * @since 1.0.0
13
+ */
14
+ export * as Effectify from "./Effectify.js"
15
+
16
+ /**
17
+ * @since 1.0.0
18
+ */
19
+ export * as Error from "./Error.js"
20
+
21
+ /**
22
+ * @since 1.0.0
23
+ */
24
+ export * as FileSystem from "./FileSystem.js"
25
+
26
+ /**
27
+ * @since 1.0.0
28
+ */
29
+ export * as HttpClient from "./HttpClient.js"
30
+
31
+ /**
32
+ * @since 1.0.0
33
+ */
34
+ export * as HttpServer from "./HttpServer.js"
35
+
36
+ /**
37
+ * @since 1.0.0
38
+ */
39
+ export * as KeyValueStore from "./KeyValueStore.js"
40
+
41
+ /**
42
+ * @since 1.0.0
43
+ */
44
+ export * as Path from "./Path.js"
45
+
46
+ /**
47
+ * @since 1.0.0
48
+ */
49
+ export * as Runtime from "./Runtime.js"
50
+
51
+ /**
52
+ * @since 1.0.0
53
+ */
54
+ export * as Terminal from "./Terminal.js"
55
+
56
+ /**
57
+ * @since 1.0.0
58
+ */
59
+ export * as Transferable from "./Transferable.js"
60
+
61
+ /**
62
+ * @since 1.0.0
63
+ */
64
+ export * as Worker from "./Worker.js"
65
+
66
+ /**
67
+ * @since 1.0.0
68
+ */
69
+ export * as WorkerError from "./WorkerError.js"
70
+
71
+ /**
72
+ * @since 1.0.0
73
+ */
74
+ export * as WorkerRunner from "./WorkerRunner.js"
@@ -39,7 +39,7 @@ export const env: {
39
39
  /** @internal */
40
40
  export const exitCode = (
41
41
  self: Command.Command
42
- ): Effect.Effect<CommandExecutor.CommandExecutor, PlatformError, CommandExecutor.ExitCode> =>
42
+ ): Effect.Effect<CommandExecutor.ExitCode, PlatformError, CommandExecutor.CommandExecutor> =>
43
43
  Effect.flatMap(commandExecutor.CommandExecutor, (executor) => executor.exitCode(self))
44
44
 
45
45
  /** @internal */
@@ -91,7 +91,7 @@ export const runInShell = dual<
91
91
  export const lines = (
92
92
  command: Command.Command,
93
93
  encoding = "utf-8"
94
- ): Effect.Effect<CommandExecutor.CommandExecutor, PlatformError, ReadonlyArray<string>> =>
94
+ ): Effect.Effect<ReadonlyArray<string>, PlatformError, CommandExecutor.CommandExecutor> =>
95
95
  Effect.flatMap(commandExecutor.CommandExecutor, (executor) => executor.lines(command, encoding))
96
96
 
97
97
  /** @internal */
@@ -192,27 +192,27 @@ export const stdout: {
192
192
  /** @internal */
193
193
  export const start = (
194
194
  command: Command.Command
195
- ): Effect.Effect<CommandExecutor.CommandExecutor | Scope, PlatformError, CommandExecutor.Process> =>
195
+ ): Effect.Effect<CommandExecutor.Process, PlatformError, CommandExecutor.CommandExecutor | Scope> =>
196
196
  Effect.flatMap(commandExecutor.CommandExecutor, (executor) => executor.start(command))
197
197
 
198
198
  /** @internal */
199
199
  export const stream = (
200
200
  command: Command.Command
201
- ): Stream.Stream<CommandExecutor.CommandExecutor, PlatformError, Uint8Array> =>
201
+ ): Stream.Stream<Uint8Array, PlatformError, CommandExecutor.CommandExecutor> =>
202
202
  Stream.flatMap(commandExecutor.CommandExecutor, (process) => process.stream(command))
203
203
 
204
204
  /** @internal */
205
205
  export const streamLines = (
206
206
  command: Command.Command
207
- ): Stream.Stream<CommandExecutor.CommandExecutor, PlatformError, string> =>
207
+ ): Stream.Stream<string, PlatformError, CommandExecutor.CommandExecutor> =>
208
208
  Stream.flatMap(commandExecutor.CommandExecutor, (process) => process.streamLines(command))
209
209
 
210
210
  /** @internal */
211
211
  export const string = dual<
212
212
  (
213
213
  encoding?: string
214
- ) => (command: Command.Command) => Effect.Effect<CommandExecutor.CommandExecutor, PlatformError, string>,
215
- (command: Command.Command, encoding?: string) => Effect.Effect<CommandExecutor.CommandExecutor, PlatformError, string>
214
+ ) => (command: Command.Command) => Effect.Effect<string, PlatformError, CommandExecutor.CommandExecutor>,
215
+ (command: Command.Command, encoding?: string) => Effect.Effect<string, PlatformError, CommandExecutor.CommandExecutor>
216
216
  >(
217
217
  (args) => isCommand(args[0]),
218
218
  (command, encoding) =>
@@ -1,6 +1,6 @@
1
1
  import * as Brand from "effect/Brand"
2
2
  import * as Chunk from "effect/Chunk"
3
- import { Tag } from "effect/Context"
3
+ import { GenericTag } from "effect/Context"
4
4
  import * as Effect from "effect/Effect"
5
5
  import { pipe } from "effect/Function"
6
6
  import * as Sink from "effect/Sink"
@@ -19,7 +19,7 @@ export const ExitCode = Brand.nominal<_CommandExecutor.ExitCode>()
19
19
  export const ProcessId = Brand.nominal<_CommandExecutor.Process.Id>()
20
20
 
21
21
  /** @internal */
22
- export const CommandExecutor = Tag<_CommandExecutor.CommandExecutor>("@effect/platform/CommandExecutor")
22
+ export const CommandExecutor = GenericTag<_CommandExecutor.CommandExecutor>("@effect/platform/CommandExecutor")
23
23
 
24
24
  /** @internal */
25
25
  export const makeExecutor = (start: _CommandExecutor.CommandExecutor["start"]): _CommandExecutor.CommandExecutor => {
@@ -55,7 +55,7 @@ export const makeExecutor = (start: _CommandExecutor.CommandExecutor["start"]):
55
55
  }
56
56
  }
57
57
 
58
- const collectUint8Array: Sink.Sink<never, never, Uint8Array, never, Uint8Array> = Sink.foldLeftChunks(
58
+ const collectUint8Array: Sink.Sink<Uint8Array, Uint8Array> = Sink.foldLeftChunks(
59
59
  new Uint8Array(),
60
60
  (bytes, chunk: Chunk.Chunk<Uint8Array>) =>
61
61
  Chunk.reduce(chunk, bytes, (acc, curr) => {
@@ -16,7 +16,7 @@ export const effectify: {
16
16
  } =
17
17
  (<A>(fn: Function, onError?: (e: any, args: any) => any, onSyncError?: (e: any, args: any) => any) =>
18
18
  (...args: Array<any>) =>
19
- Effect.async<never, Error, A>((resume) => {
19
+ Effect.async<A, Error>((resume) => {
20
20
  try {
21
21
  fn(...args, (err: Error | null, result: A) => {
22
22
  if (err) {
@@ -1,6 +1,6 @@
1
1
  import * as Channel from "effect/Channel"
2
2
  import * as Chunk from "effect/Chunk"
3
- import { Tag } from "effect/Context"
3
+ import { GenericTag } from "effect/Context"
4
4
  import * as Effect from "effect/Effect"
5
5
  import { identity, pipe } from "effect/Function"
6
6
  import * as Option from "effect/Option"
@@ -10,7 +10,7 @@ import * as Error from "../Error.js"
10
10
  import type { File, FileSystem, Size as Size_, SizeInput, StreamOptions } from "../FileSystem.js"
11
11
 
12
12
  /** @internal */
13
- export const tag = Tag<FileSystem>("@effect/platform/FileSystem")
13
+ export const tag = GenericTag<FileSystem>("@effect/platform/FileSystem")
14
14
 
15
15
  /** @internal */
16
16
  export const Size = (bytes: SizeInput) => typeof bytes === "bigint" ? bytes as Size_ : BigInt(bytes) as Size_
@@ -97,7 +97,7 @@ const stream = (file: File, {
97
97
 
98
98
  function loop(
99
99
  totalBytesRead: bigint
100
- ): Channel.Channel<never, unknown, unknown, unknown, Error.PlatformError, Chunk.Chunk<Uint8Array>, void> {
100
+ ): Channel.Channel<Chunk.Chunk<Uint8Array>, unknown, Error.PlatformError, unknown, void, unknown> {
101
101
  if (bytesToRead !== undefined && bytesToRead <= totalBytesRead) {
102
102
  return Channel.unit
103
103
  }