@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.
- package/dist/cjs/Error.js +4 -0
- package/dist/cjs/Error.js.map +1 -1
- package/dist/cjs/Http/App.js.map +1 -1
- package/dist/cjs/Http/Body.js.map +1 -1
- package/dist/cjs/Http/Client.js.map +1 -1
- package/dist/cjs/Http/ClientError.js +4 -0
- package/dist/cjs/Http/ClientError.js.map +1 -1
- package/dist/cjs/Http/ClientResponse.js.map +1 -1
- package/dist/cjs/Http/IncomingMessage.js.map +1 -1
- package/dist/cjs/Http/Multipart.js.map +1 -1
- package/dist/cjs/Http/Server.js +26 -1
- package/dist/cjs/Http/Server.js.map +1 -1
- package/dist/cjs/Http/ServerError.js.map +1 -1
- package/dist/cjs/Http/ServerResponse.js.map +1 -1
- package/dist/cjs/HttpServer.js +7 -1
- package/dist/cjs/HttpServer.js.map +1 -1
- package/dist/cjs/KeyValueStore.js.map +1 -1
- package/dist/cjs/Path.js.map +1 -1
- package/dist/cjs/Transferable.js +51 -48
- package/dist/cjs/Transferable.js.map +1 -1
- package/dist/cjs/Worker.js +6 -1
- package/dist/cjs/Worker.js.map +1 -1
- package/dist/cjs/WorkerError.js +4 -0
- package/dist/cjs/WorkerError.js.map +1 -1
- package/dist/cjs/index.js +62 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/internal/commandExecutor.js +1 -1
- package/dist/cjs/internal/commandExecutor.js.map +1 -1
- package/dist/cjs/internal/effectify.js.map +1 -1
- package/dist/cjs/internal/fileSystem.js +1 -1
- package/dist/cjs/internal/fileSystem.js.map +1 -1
- package/dist/cjs/internal/http/body.js.map +1 -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/etag.js +1 -1
- package/dist/cjs/internal/http/etag.js.map +1 -1
- package/dist/cjs/internal/http/multipart.js.map +1 -1
- package/dist/cjs/internal/http/platform.js +1 -1
- package/dist/cjs/internal/http/platform.js.map +1 -1
- package/dist/cjs/internal/http/router.js +1 -1
- package/dist/cjs/internal/http/router.js.map +1 -1
- package/dist/cjs/internal/http/server.js +23 -2
- package/dist/cjs/internal/http/server.js.map +1 -1
- package/dist/cjs/internal/http/serverRequest.js +1 -1
- package/dist/cjs/internal/http/serverRequest.js.map +1 -1
- package/dist/cjs/internal/http/serverResponse.js.map +1 -1
- package/dist/cjs/internal/keyValueStore.js +2 -2
- package/dist/cjs/internal/keyValueStore.js.map +1 -1
- package/dist/cjs/internal/path.js +9 -4
- package/dist/cjs/internal/path.js.map +1 -1
- package/dist/cjs/internal/terminal.js +1 -1
- package/dist/cjs/internal/terminal.js.map +1 -1
- package/dist/cjs/internal/worker.js +16 -12
- package/dist/cjs/internal/worker.js.map +1 -1
- package/dist/cjs/internal/workerError.js.map +1 -1
- package/dist/cjs/internal/workerRunner.js +15 -12
- package/dist/cjs/internal/workerRunner.js.map +1 -1
- package/dist/dts/Command.d.ts +9 -9
- package/dist/dts/Command.d.ts.map +1 -1
- package/dist/dts/CommandExecutor.d.ts +13 -13
- package/dist/dts/CommandExecutor.d.ts.map +1 -1
- package/dist/dts/Effectify.d.ts +55 -55
- package/dist/dts/Effectify.d.ts.map +1 -1
- package/dist/dts/Error.d.ts +2 -6
- package/dist/dts/Error.d.ts.map +1 -1
- package/dist/dts/FileSystem.d.ts +35 -35
- package/dist/dts/FileSystem.d.ts.map +1 -1
- package/dist/dts/Http/App.d.ts +5 -5
- package/dist/dts/Http/App.d.ts.map +1 -1
- package/dist/dts/Http/Body.d.ts +10 -11
- package/dist/dts/Http/Body.d.ts.map +1 -1
- package/dist/dts/Http/Client.d.ts +32 -32
- package/dist/dts/Http/Client.d.ts.map +1 -1
- package/dist/dts/Http/ClientError.d.ts +2 -6
- package/dist/dts/Http/ClientError.d.ts.map +1 -1
- package/dist/dts/Http/ClientRequest.d.ts +16 -16
- package/dist/dts/Http/ClientRequest.d.ts.map +1 -1
- package/dist/dts/Http/ClientResponse.d.ts +3 -3
- package/dist/dts/Http/ClientResponse.d.ts.map +1 -1
- package/dist/dts/Http/Etag.d.ts +2 -2
- package/dist/dts/Http/Etag.d.ts.map +1 -1
- package/dist/dts/Http/IncomingMessage.d.ts +10 -10
- package/dist/dts/Http/IncomingMessage.d.ts.map +1 -1
- package/dist/dts/Http/Middleware.d.ts +3 -3
- package/dist/dts/Http/Multipart.d.ts +18 -19
- package/dist/dts/Http/Multipart.d.ts.map +1 -1
- package/dist/dts/Http/Multiplex.d.ts +4 -4
- package/dist/dts/Http/Multiplex.d.ts.map +1 -1
- package/dist/dts/Http/Platform.d.ts +3 -3
- package/dist/dts/Http/Platform.d.ts.map +1 -1
- package/dist/dts/Http/Router.d.ts +10 -10
- package/dist/dts/Http/Router.d.ts.map +1 -1
- package/dist/dts/Http/Server.d.ts +39 -14
- package/dist/dts/Http/Server.d.ts.map +1 -1
- package/dist/dts/Http/ServerError.d.ts +2 -3
- package/dist/dts/Http/ServerError.d.ts.map +1 -1
- package/dist/dts/Http/ServerRequest.d.ts +9 -9
- package/dist/dts/Http/ServerRequest.d.ts.map +1 -1
- package/dist/dts/Http/ServerResponse.d.ts +7 -7
- package/dist/dts/Http/ServerResponse.d.ts.map +1 -1
- package/dist/dts/Http/UrlParams.d.ts +4 -4
- package/dist/dts/HttpServer.d.ts +24 -0
- package/dist/dts/HttpServer.d.ts.map +1 -1
- package/dist/dts/KeyValueStore.d.ts +21 -21
- package/dist/dts/KeyValueStore.d.ts.map +1 -1
- package/dist/dts/Path.d.ts +3 -3
- package/dist/dts/Path.d.ts.map +1 -1
- package/dist/dts/Runtime.d.ts +1 -1
- package/dist/dts/Runtime.d.ts.map +1 -1
- package/dist/dts/Terminal.d.ts +5 -5
- package/dist/dts/Terminal.d.ts.map +1 -1
- package/dist/dts/Transferable.d.ts +35 -13
- package/dist/dts/Transferable.d.ts.map +1 -1
- package/dist/dts/Worker.d.ts +58 -41
- package/dist/dts/Worker.d.ts.map +1 -1
- package/dist/dts/WorkerError.d.ts +3 -7
- package/dist/dts/WorkerError.d.ts.map +1 -1
- package/dist/dts/WorkerRunner.d.ts +13 -13
- package/dist/dts/WorkerRunner.d.ts.map +1 -1
- package/dist/dts/index.d.ts +61 -0
- package/dist/dts/index.d.ts.map +1 -0
- package/dist/esm/Error.js +3 -0
- package/dist/esm/Error.js.map +1 -1
- package/dist/esm/Http/App.js.map +1 -1
- package/dist/esm/Http/Body.js.map +1 -1
- package/dist/esm/Http/Client.js.map +1 -1
- package/dist/esm/Http/ClientError.js +3 -0
- package/dist/esm/Http/ClientError.js.map +1 -1
- package/dist/esm/Http/ClientResponse.js.map +1 -1
- package/dist/esm/Http/IncomingMessage.js.map +1 -1
- package/dist/esm/Http/Multipart.js.map +1 -1
- package/dist/esm/Http/Server.js +25 -0
- package/dist/esm/Http/Server.js.map +1 -1
- package/dist/esm/Http/ServerError.js.map +1 -1
- package/dist/esm/Http/ServerResponse.js.map +1 -1
- package/dist/esm/HttpServer.js +24 -0
- package/dist/esm/HttpServer.js.map +1 -1
- package/dist/esm/KeyValueStore.js.map +1 -1
- package/dist/esm/Path.js.map +1 -1
- package/dist/esm/Transferable.js +48 -45
- package/dist/esm/Transferable.js.map +1 -1
- package/dist/esm/Worker.js +5 -0
- package/dist/esm/Worker.js.map +1 -1
- package/dist/esm/WorkerError.js +3 -0
- package/dist/esm/WorkerError.js.map +1 -1
- package/dist/esm/index.js +61 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/commandExecutor.js +2 -2
- package/dist/esm/internal/commandExecutor.js.map +1 -1
- package/dist/esm/internal/effectify.js.map +1 -1
- package/dist/esm/internal/fileSystem.js +2 -2
- package/dist/esm/internal/fileSystem.js.map +1 -1
- package/dist/esm/internal/http/body.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/etag.js +1 -1
- package/dist/esm/internal/http/etag.js.map +1 -1
- package/dist/esm/internal/http/multipart.js.map +1 -1
- package/dist/esm/internal/http/platform.js +1 -1
- package/dist/esm/internal/http/platform.js.map +1 -1
- package/dist/esm/internal/http/router.js +1 -1
- package/dist/esm/internal/http/router.js.map +1 -1
- package/dist/esm/internal/http/server.js +18 -1
- package/dist/esm/internal/http/server.js.map +1 -1
- package/dist/esm/internal/http/serverRequest.js +1 -1
- package/dist/esm/internal/http/serverRequest.js.map +1 -1
- package/dist/esm/internal/http/serverResponse.js.map +1 -1
- package/dist/esm/internal/keyValueStore.js +2 -2
- package/dist/esm/internal/keyValueStore.js.map +1 -1
- package/dist/esm/internal/path.js +3 -3
- package/dist/esm/internal/path.js.map +1 -1
- package/dist/esm/internal/terminal.js +2 -2
- package/dist/esm/internal/terminal.js.map +1 -1
- package/dist/esm/internal/worker.js +14 -11
- package/dist/esm/internal/worker.js.map +1 -1
- package/dist/esm/internal/workerError.js.map +1 -1
- package/dist/esm/internal/workerRunner.js +15 -12
- package/dist/esm/internal/workerRunner.js.map +1 -1
- package/package.json +11 -3
- package/src/Command.ts +9 -9
- package/src/CommandExecutor.ts +13 -13
- package/src/Effectify.ts +55 -55
- package/src/Error.ts +2 -3
- package/src/FileSystem.ts +35 -35
- package/src/Http/App.ts +5 -5
- package/src/Http/Body.ts +12 -13
- package/src/Http/Client.ts +37 -37
- package/src/Http/ClientError.ts +2 -3
- package/src/Http/ClientRequest.ts +17 -17
- package/src/Http/ClientResponse.ts +8 -5
- package/src/Http/Etag.ts +2 -2
- package/src/Http/IncomingMessage.ts +27 -23
- package/src/Http/Middleware.ts +4 -4
- package/src/Http/Multipart.ts +22 -25
- package/src/Http/Multiplex.ts +4 -4
- package/src/Http/Platform.ts +3 -3
- package/src/Http/Router.ts +16 -16
- package/src/Http/Server.ts +53 -18
- package/src/Http/ServerError.ts +2 -3
- package/src/Http/ServerRequest.ts +22 -22
- package/src/Http/ServerResponse.ts +9 -10
- package/src/Http/UrlParams.ts +6 -6
- package/src/HttpServer.ts +24 -0
- package/src/KeyValueStore.ts +23 -23
- package/src/Path.ts +3 -3
- package/src/Runtime.ts +1 -1
- package/src/Terminal.ts +4 -4
- package/src/Transferable.ts +88 -70
- package/src/Worker.ts +73 -57
- package/src/WorkerError.ts +3 -4
- package/src/WorkerRunner.ts +21 -21
- package/src/index.ts +74 -0
- package/src/internal/command.ts +7 -7
- package/src/internal/commandExecutor.ts +3 -3
- package/src/internal/effectify.ts +1 -1
- package/src/internal/fileSystem.ts +3 -3
- package/src/internal/http/body.ts +12 -12
- package/src/internal/http/client.ts +42 -46
- package/src/internal/http/clientRequest.ts +15 -15
- package/src/internal/http/clientResponse.ts +18 -18
- package/src/internal/http/etag.ts +1 -1
- package/src/internal/http/middleware.ts +4 -4
- package/src/internal/http/multipart.ts +32 -39
- package/src/internal/http/multiplex.ts +5 -5
- package/src/internal/http/platform.ts +2 -2
- package/src/internal/http/router.ts +14 -14
- package/src/internal/http/server.ts +60 -23
- package/src/internal/http/serverRequest.ts +24 -24
- package/src/internal/http/serverResponse.ts +11 -11
- package/src/internal/keyValueStore.ts +7 -7
- package/src/internal/path.ts +4 -4
- package/src/internal/terminal.ts +2 -2
- package/src/internal/worker.ts +55 -39
- package/src/internal/workerError.ts +1 -1
- 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<
|
|
28
|
-
readonly send: (message: I, transfers?: ReadonlyArray<unknown>) => Effect.Effect<
|
|
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<
|
|
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<
|
|
78
|
-
readonly executeEffect: (message: I) => Effect.Effect<
|
|
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
|
|
91
|
-
readonly
|
|
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
|
|
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<
|
|
131
|
-
readonly broadcast: (message: I) => Effect.Effect<
|
|
132
|
-
readonly execute: (message: I) => Stream.Stream<
|
|
133
|
-
readonly executeEffect: (message: I) => Effect.Effect<
|
|
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
|
|
146
|
-
& Worker.Options<I
|
|
160
|
+
export type Options<I> =
|
|
161
|
+
& Worker.Options<I>
|
|
147
162
|
& ({
|
|
148
|
-
readonly onCreate?: (worker: Worker<I, unknown, unknown>) => Effect.Effect<
|
|
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<
|
|
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<
|
|
164
|
-
readonly take: Effect.Effect<
|
|
165
|
-
readonly shutdown: Effect.Effect<
|
|
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<
|
|
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<
|
|
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<
|
|
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: <
|
|
214
|
-
options: WorkerPool.Options<I
|
|
215
|
-
) => Effect.Effect<
|
|
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: <
|
|
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
|
|
226
|
-
) => Layer.Layer<
|
|
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<
|
|
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<
|
|
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
|
|
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
|
|
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
|
|
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<
|
|
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<
|
|
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<
|
|
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<
|
|
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
|
|
307
|
-
& SerializedWorker.Options<I
|
|
317
|
+
export type Options<I> =
|
|
318
|
+
& SerializedWorker.Options<I>
|
|
308
319
|
& ({
|
|
309
|
-
readonly onCreate?: (worker: Worker<I, unknown, unknown>) => Effect.Effect<
|
|
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<
|
|
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
|
|
324
|
-
options: SerializedWorker.Options<I
|
|
325
|
-
) => Effect.Effect<WorkerManager | Scope.Scope
|
|
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: <
|
|
332
|
-
options: SerializedWorkerPool.Options<I
|
|
333
|
-
) => Effect.Effect<WorkerManager | Scope.Scope
|
|
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: <
|
|
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
|
|
344
|
-
) => Layer.Layer<
|
|
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
|
package/src/WorkerError.ts
CHANGED
|
@@ -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
|
|
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
|
package/src/WorkerRunner.ts
CHANGED
|
@@ -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<
|
|
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<
|
|
59
|
-
) => Effect.Effect<
|
|
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<
|
|
80
|
+
) => Effect.Effect<I, WorkerError>
|
|
81
81
|
readonly encodeOutput?: (
|
|
82
82
|
request: I,
|
|
83
83
|
message: O
|
|
84
|
-
) => Effect.Effect<
|
|
84
|
+
) => Effect.Effect<unknown, WorkerError>
|
|
85
85
|
readonly encodeError?: (
|
|
86
86
|
request: I,
|
|
87
87
|
error: E
|
|
88
|
-
) => Effect.Effect<
|
|
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<
|
|
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
|
|
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<
|
|
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
|
|
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<
|
|
136
|
-
| Effect.Effect<
|
|
135
|
+
| Stream.Stream<O, E, any>
|
|
136
|
+
| Effect.Effect<O, E, any>
|
|
137
137
|
| Layer.Layer<any, E, any>
|
|
138
|
-
| Layer.Layer<
|
|
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
|
|
151
|
+
infer _A,
|
|
152
152
|
infer _E,
|
|
153
|
-
infer
|
|
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
|
|
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
|
|
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<
|
|
192
|
+
schema: Schema.Schema<A, I, R>,
|
|
193
193
|
handlers: Handlers
|
|
194
|
-
) => Effect.Effect<PlatformRunner | Scope.Scope | R | SerializedRunner.HandlersContext<Handlers
|
|
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<
|
|
207
|
+
schema: Schema.Schema<A, I, R>,
|
|
208
208
|
handlers: Handlers
|
|
209
|
-
) => Layer.Layer<PlatformRunner | R | SerializedRunner.HandlersContext<Handlers
|
|
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"
|
package/src/internal/command.ts
CHANGED
|
@@ -39,7 +39,7 @@ export const env: {
|
|
|
39
39
|
/** @internal */
|
|
40
40
|
export const exitCode = (
|
|
41
41
|
self: Command.Command
|
|
42
|
-
): Effect.Effect<CommandExecutor.
|
|
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<
|
|
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.
|
|
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<
|
|
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<
|
|
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<
|
|
215
|
-
(command: Command.Command, encoding?: string) => Effect.Effect<
|
|
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 {
|
|
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 =
|
|
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<
|
|
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<
|
|
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 {
|
|
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 =
|
|
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<
|
|
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
|
}
|