@effect/platform-node 0.42.11 → 0.43.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/NodeCommandExecutor/package.json +6 -0
- package/NodeFileSystem/package.json +6 -0
- package/NodeHttpClient/package.json +6 -0
- package/NodeHttpServer/package.json +6 -0
- package/NodeKeyValueStore/package.json +6 -0
- package/NodePath/package.json +6 -0
- package/NodeRuntime/package.json +6 -0
- package/NodeSink/package.json +6 -0
- package/NodeStream/package.json +6 -0
- package/NodeTerminal/package.json +6 -0
- package/NodeWorker/package.json +6 -0
- package/NodeWorkerRunner/package.json +6 -0
- package/dist/cjs/Http/Platform.js +0 -20
- package/dist/cjs/Http/Platform.js.map +1 -1
- package/dist/cjs/Http/Server.js +6 -23
- package/dist/cjs/Http/Server.js.map +1 -1
- package/dist/cjs/Http/ServerRequest.js +0 -19
- package/dist/cjs/Http/ServerRequest.js.map +1 -1
- package/dist/cjs/{FileSystem.js → NodeCommandExecutor.js} +3 -16
- package/dist/cjs/NodeCommandExecutor.js.map +1 -0
- package/dist/cjs/NodeContext.js +6 -6
- package/dist/cjs/NodeContext.js.map +1 -1
- package/dist/cjs/NodeFileSystem.js +42 -0
- package/dist/cjs/NodeFileSystem.js.map +1 -0
- package/dist/cjs/{Http/NodeClient.js → NodeHttpClient.js} +2 -2
- package/dist/cjs/{Http/NodeClient.js.map → NodeHttpClient.js.map} +1 -1
- package/dist/cjs/NodeHttpServer.js +40 -0
- package/dist/cjs/NodeHttpServer.js.map +1 -0
- package/dist/cjs/NodeKeyValueStore.js +42 -0
- package/dist/cjs/NodeKeyValueStore.js.map +1 -0
- package/dist/cjs/{Path.js → NodePath.js} +5 -12
- package/dist/cjs/NodePath.js.map +1 -0
- package/dist/cjs/{Runtime.js → NodeRuntime.js} +7 -10
- package/dist/cjs/NodeRuntime.js.map +1 -0
- package/dist/cjs/NodeSink.js +17 -0
- package/dist/cjs/NodeSink.js.map +1 -0
- package/dist/cjs/NodeStream.js +17 -0
- package/dist/cjs/NodeStream.js.map +1 -0
- package/dist/cjs/{Terminal.js → NodeTerminal.js} +8 -11
- package/dist/cjs/NodeTerminal.js.map +1 -0
- package/dist/cjs/{Sink.js → NodeWorker.js} +9 -8
- package/dist/cjs/NodeWorker.js.map +1 -0
- package/dist/cjs/{CommandExecutor.js → NodeWorkerRunner.js} +3 -10
- package/dist/cjs/NodeWorkerRunner.js.map +1 -0
- package/dist/cjs/index.js +25 -33
- package/dist/cjs/internal/http/{nodeClient.js → client.js} +3 -3
- package/dist/cjs/internal/http/{nodeClient.js.map → client.js.map} +1 -1
- package/dist/cjs/internal/http/incomingMessage.js +1 -1
- package/dist/cjs/internal/http/incomingMessage.js.map +1 -1
- package/dist/cjs/internal/http/platform.js +3 -3
- package/dist/cjs/internal/http/platform.js.map +1 -1
- package/dist/cjs/internal/http/server.js +13 -8
- package/dist/cjs/internal/http/server.js.map +1 -1
- package/dist/cjs/internal/worker.js +3 -8
- package/dist/cjs/internal/worker.js.map +1 -1
- package/dist/cjs/internal/workerRunner.js +2 -8
- package/dist/cjs/internal/workerRunner.js.map +1 -1
- package/dist/dts/Http/Platform.d.ts +2 -8
- package/dist/dts/Http/Platform.d.ts.map +1 -1
- package/dist/dts/Http/Server.d.ts +10 -9
- package/dist/dts/Http/Server.d.ts.map +1 -1
- package/dist/dts/Http/ServerRequest.d.ts +0 -6
- package/dist/dts/Http/ServerRequest.d.ts.map +1 -1
- package/dist/dts/NodeCommandExecutor.d.ts +9 -0
- package/dist/dts/NodeCommandExecutor.d.ts.map +1 -0
- package/dist/dts/NodeContext.d.ts +6 -6
- package/dist/dts/NodeContext.d.ts.map +1 -1
- package/dist/dts/NodeFileSystem.d.ts +8 -0
- package/dist/dts/NodeFileSystem.d.ts.map +1 -0
- package/dist/dts/{Http/NodeClient.d.ts → NodeHttpClient.d.ts} +7 -7
- package/dist/dts/{Http/NodeClient.d.ts.map → NodeHttpClient.d.ts.map} +1 -1
- package/dist/dts/NodeHttpServer.d.ts +37 -0
- package/dist/dts/NodeHttpServer.d.ts.map +1 -0
- package/dist/dts/NodeKeyValueStore.d.ts +9 -0
- package/dist/dts/NodeKeyValueStore.d.ts.map +1 -0
- package/dist/dts/NodePath.d.ts +21 -0
- package/dist/dts/NodePath.d.ts.map +1 -0
- package/dist/dts/NodeRuntime.d.ts +7 -0
- package/dist/dts/NodeRuntime.d.ts.map +1 -0
- package/dist/dts/NodeSink.d.ts +8 -0
- package/dist/dts/NodeSink.d.ts.map +1 -0
- package/dist/dts/NodeStream.d.ts +8 -0
- package/dist/dts/NodeStream.d.ts.map +1 -0
- package/dist/dts/NodeTerminal.d.ts +15 -0
- package/dist/dts/NodeTerminal.d.ts.map +1 -0
- package/dist/dts/NodeWorker.d.ts +23 -0
- package/dist/dts/NodeWorker.d.ts.map +1 -0
- package/dist/dts/NodeWorkerRunner.d.ts +11 -0
- package/dist/dts/NodeWorkerRunner.d.ts.map +1 -0
- package/dist/dts/index.d.ts +13 -37
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/http/client.d.ts +2 -0
- package/dist/dts/internal/http/client.d.ts.map +1 -0
- package/dist/esm/Http/Platform.js +0 -4
- package/dist/esm/Http/Platform.js.map +1 -1
- package/dist/esm/Http/Server.js +5 -4
- package/dist/esm/Http/Server.js.map +1 -1
- package/dist/esm/Http/ServerRequest.js +0 -4
- package/dist/esm/Http/ServerRequest.js.map +1 -1
- package/dist/esm/NodeCommandExecutor.js +10 -0
- package/dist/esm/NodeCommandExecutor.js.map +1 -0
- package/dist/esm/NodeContext.js +6 -6
- package/dist/esm/NodeContext.js.map +1 -1
- package/dist/esm/NodeFileSystem.js +10 -0
- package/dist/esm/NodeFileSystem.js.map +1 -0
- package/dist/esm/{Http/NodeClient.js → NodeHttpClient.js} +2 -2
- package/dist/esm/NodeHttpClient.js.map +1 -0
- package/dist/esm/NodeHttpServer.js +37 -0
- package/dist/esm/NodeHttpServer.js.map +1 -0
- package/dist/esm/NodeKeyValueStore.js +10 -0
- package/dist/esm/NodeKeyValueStore.js.map +1 -0
- package/dist/esm/NodePath.js +20 -0
- package/dist/esm/NodePath.js.map +1 -0
- package/dist/esm/NodeRuntime.js +10 -0
- package/dist/esm/NodeRuntime.js.map +1 -0
- package/dist/esm/NodeSink.js +8 -0
- package/dist/esm/NodeSink.js.map +1 -0
- package/dist/esm/NodeStream.js +8 -0
- package/dist/esm/NodeStream.js.map +1 -0
- package/dist/esm/NodeTerminal.js +15 -0
- package/dist/esm/NodeTerminal.js.map +1 -0
- package/dist/esm/NodeWorker.js +17 -0
- package/dist/esm/NodeWorker.js.map +1 -0
- package/dist/esm/NodeWorkerRunner.js +7 -0
- package/dist/esm/NodeWorkerRunner.js.map +1 -0
- package/dist/esm/index.js +13 -37
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/http/{nodeClient.js → client.js} +3 -3
- package/dist/esm/internal/http/client.js.map +1 -0
- package/dist/esm/internal/http/incomingMessage.js +1 -1
- package/dist/esm/internal/http/incomingMessage.js.map +1 -1
- package/dist/esm/internal/http/platform.js +3 -3
- package/dist/esm/internal/http/platform.js.map +1 -1
- package/dist/esm/internal/http/server.js +11 -7
- package/dist/esm/internal/http/server.js.map +1 -1
- package/dist/esm/internal/worker.js +1 -7
- package/dist/esm/internal/worker.js.map +1 -1
- package/dist/esm/internal/workerRunner.js +1 -5
- package/dist/esm/internal/workerRunner.js.map +1 -1
- package/package.json +89 -145
- package/src/Http/Platform.ts +2 -9
- package/src/Http/Server.ts +19 -11
- package/src/Http/ServerRequest.ts +0 -7
- package/src/NodeCommandExecutor.ts +13 -0
- package/src/NodeContext.ts +16 -11
- package/src/NodeFileSystem.ts +12 -0
- package/src/{Http/NodeClient.ts → NodeHttpClient.ts} +7 -8
- package/src/NodeHttpServer.ts +38 -0
- package/src/NodeKeyValueStore.ts +15 -0
- package/src/NodePath.ts +25 -0
- package/src/NodeRuntime.ts +11 -0
- package/src/NodeSink.ts +8 -0
- package/src/NodeStream.ts +8 -0
- package/src/NodeTerminal.ts +20 -0
- package/src/NodeWorker.ts +27 -0
- package/src/NodeWorkerRunner.ts +12 -0
- package/src/index.ts +13 -41
- package/src/internal/http/{nodeClient.ts → client.ts} +10 -10
- package/src/internal/http/incomingMessage.ts +7 -7
- package/src/internal/http/platform.ts +3 -3
- package/src/internal/http/server.ts +35 -23
- package/src/internal/worker.ts +7 -14
- package/src/internal/workerRunner.ts +3 -26
- package/Command/package.json +0 -6
- package/CommandExecutor/package.json +0 -6
- package/Effectify/package.json +0 -6
- package/Error/package.json +0 -6
- package/FileSystem/package.json +0 -6
- package/Http/Etag/package.json +0 -6
- package/Http/Multipart/package.json +0 -6
- package/Http/NodeClient/package.json +0 -6
- package/HttpClient/package.json +0 -6
- package/HttpServer/package.json +0 -6
- package/KeyValueStore/package.json +0 -6
- package/Path/package.json +0 -6
- package/Runtime/package.json +0 -6
- package/Sink/package.json +0 -6
- package/Stream/package.json +0 -6
- package/Terminal/package.json +0 -6
- package/Transferable/package.json +0 -6
- package/Worker/package.json +0 -6
- package/WorkerRunner/package.json +0 -6
- package/dist/cjs/Command.js +0 -109
- package/dist/cjs/Command.js.map +0 -1
- package/dist/cjs/CommandExecutor.js.map +0 -1
- package/dist/cjs/Effectify.js +0 -13
- package/dist/cjs/Effectify.js.map +0 -1
- package/dist/cjs/Error.js +0 -25
- package/dist/cjs/Error.js.map +0 -1
- package/dist/cjs/FileSystem.js.map +0 -1
- package/dist/cjs/Http/Etag.js +0 -63
- package/dist/cjs/Http/Etag.js.map +0 -1
- package/dist/cjs/Http/Multipart.js +0 -69
- package/dist/cjs/Http/Multipart.js.map +0 -1
- package/dist/cjs/HttpClient.js +0 -48
- package/dist/cjs/HttpClient.js.map +0 -1
- package/dist/cjs/HttpServer.js +0 -58
- package/dist/cjs/HttpServer.js.map +0 -1
- package/dist/cjs/KeyValueStore.js +0 -60
- package/dist/cjs/KeyValueStore.js.map +0 -1
- package/dist/cjs/Path.js.map +0 -1
- package/dist/cjs/Runtime.js.map +0 -1
- package/dist/cjs/Sink.js.map +0 -1
- package/dist/cjs/Stream.js +0 -68
- package/dist/cjs/Stream.js.map +0 -1
- package/dist/cjs/Terminal.js.map +0 -1
- package/dist/cjs/Transferable.js +0 -17
- package/dist/cjs/Transferable.js.map +0 -1
- package/dist/cjs/Worker.js +0 -87
- package/dist/cjs/Worker.js.map +0 -1
- package/dist/cjs/WorkerRunner.js +0 -69
- package/dist/cjs/WorkerRunner.js.map +0 -1
- package/dist/cjs/internal/commandExecutor.js +0 -151
- package/dist/cjs/internal/commandExecutor.js.map +0 -1
- package/dist/cjs/internal/error.js +0 -44
- package/dist/cjs/internal/error.js.map +0 -1
- package/dist/cjs/internal/fileSystem.js +0 -370
- package/dist/cjs/internal/fileSystem.js.map +0 -1
- package/dist/cjs/internal/http/etag.js +0 -74
- package/dist/cjs/internal/http/etag.js.map +0 -1
- package/dist/cjs/internal/http/multipart.js +0 -119
- package/dist/cjs/internal/http/multipart.js.map +0 -1
- package/dist/cjs/internal/path.js +0 -72
- package/dist/cjs/internal/path.js.map +0 -1
- package/dist/cjs/internal/runtime.js +0 -59
- package/dist/cjs/internal/runtime.js.map +0 -1
- package/dist/cjs/internal/sink.js +0 -52
- package/dist/cjs/internal/sink.js.map +0 -1
- package/dist/cjs/internal/stream.js +0 -208
- package/dist/cjs/internal/stream.js.map +0 -1
- package/dist/cjs/internal/terminal.js +0 -121
- package/dist/cjs/internal/terminal.js.map +0 -1
- package/dist/dts/Command.d.ts +0 -116
- package/dist/dts/Command.d.ts.map +0 -1
- package/dist/dts/CommandExecutor.d.ts +0 -44
- package/dist/dts/CommandExecutor.d.ts.map +0 -1
- package/dist/dts/Effectify.d.ts +0 -19
- package/dist/dts/Effectify.d.ts.map +0 -1
- package/dist/dts/Error.d.ts +0 -31
- package/dist/dts/Error.d.ts.map +0 -1
- package/dist/dts/FileSystem.d.ts +0 -78
- package/dist/dts/FileSystem.d.ts.map +0 -1
- package/dist/dts/Http/Etag.d.ts +0 -22
- package/dist/dts/Http/Etag.d.ts.map +0 -1
- package/dist/dts/Http/Multipart.d.ts +0 -35
- package/dist/dts/Http/Multipart.d.ts.map +0 -1
- package/dist/dts/HttpClient.d.ts +0 -69
- package/dist/dts/HttpClient.d.ts.map +0 -1
- package/dist/dts/HttpServer.d.ts +0 -109
- package/dist/dts/HttpServer.d.ts.map +0 -1
- package/dist/dts/KeyValueStore.d.ts +0 -18
- package/dist/dts/KeyValueStore.d.ts.map +0 -1
- package/dist/dts/Path.d.ts +0 -27
- package/dist/dts/Path.d.ts.map +0 -1
- package/dist/dts/Runtime.d.ts +0 -27
- package/dist/dts/Runtime.d.ts.map +0 -1
- package/dist/dts/Sink.d.ts +0 -22
- package/dist/dts/Sink.d.ts.map +0 -1
- package/dist/dts/Stream.d.ts +0 -79
- package/dist/dts/Stream.d.ts.map +0 -1
- package/dist/dts/Terminal.d.ts +0 -35
- package/dist/dts/Terminal.d.ts.map +0 -1
- package/dist/dts/Transferable.d.ts +0 -7
- package/dist/dts/Transferable.d.ts.map +0 -1
- package/dist/dts/Worker.d.ts +0 -48
- package/dist/dts/Worker.d.ts.map +0 -1
- package/dist/dts/WorkerRunner.d.ts +0 -30
- package/dist/dts/WorkerRunner.d.ts.map +0 -1
- package/dist/dts/internal/commandExecutor.d.ts +0 -2
- package/dist/dts/internal/commandExecutor.d.ts.map +0 -1
- package/dist/dts/internal/error.d.ts +0 -2
- package/dist/dts/internal/error.d.ts.map +0 -1
- package/dist/dts/internal/fileSystem.d.ts +0 -2
- package/dist/dts/internal/fileSystem.d.ts.map +0 -1
- package/dist/dts/internal/http/etag.d.ts +0 -2
- package/dist/dts/internal/http/etag.d.ts.map +0 -1
- package/dist/dts/internal/http/multipart.d.ts +0 -2
- package/dist/dts/internal/http/multipart.d.ts.map +0 -1
- package/dist/dts/internal/http/nodeClient.d.ts +0 -2
- package/dist/dts/internal/http/nodeClient.d.ts.map +0 -1
- package/dist/dts/internal/path.d.ts +0 -2
- package/dist/dts/internal/path.d.ts.map +0 -1
- package/dist/dts/internal/runtime.d.ts +0 -2
- package/dist/dts/internal/runtime.d.ts.map +0 -1
- package/dist/dts/internal/sink.d.ts +0 -2
- package/dist/dts/internal/sink.d.ts.map +0 -1
- package/dist/dts/internal/stream.d.ts +0 -2
- package/dist/dts/internal/stream.d.ts.map +0 -1
- package/dist/dts/internal/terminal.d.ts +0 -2
- package/dist/dts/internal/terminal.d.ts.map +0 -1
- package/dist/esm/Command.js +0 -90
- package/dist/esm/Command.js.map +0 -1
- package/dist/esm/CommandExecutor.js +0 -13
- package/dist/esm/CommandExecutor.js.map +0 -1
- package/dist/esm/Effectify.js +0 -10
- package/dist/esm/Effectify.js.map +0 -1
- package/dist/esm/Error.js +0 -20
- package/dist/esm/Error.js.map +0 -1
- package/dist/esm/FileSystem.js +0 -21
- package/dist/esm/FileSystem.js.map +0 -1
- package/dist/esm/Http/Etag.js +0 -16
- package/dist/esm/Http/Etag.js.map +0 -1
- package/dist/esm/Http/Multipart.js +0 -21
- package/dist/esm/Http/Multipart.js.map +0 -1
- package/dist/esm/Http/NodeClient.js.map +0 -1
- package/dist/esm/HttpClient.js +0 -69
- package/dist/esm/HttpClient.js.map +0 -1
- package/dist/esm/HttpServer.js +0 -109
- package/dist/esm/HttpServer.js.map +0 -1
- package/dist/esm/KeyValueStore.js +0 -14
- package/dist/esm/KeyValueStore.js.map +0 -1
- package/dist/esm/Path.js +0 -26
- package/dist/esm/Path.js.map +0 -1
- package/dist/esm/Runtime.js +0 -13
- package/dist/esm/Runtime.js.map +0 -1
- package/dist/esm/Sink.js +0 -15
- package/dist/esm/Sink.js.map +0 -1
- package/dist/esm/Stream.js +0 -37
- package/dist/esm/Stream.js.map +0 -1
- package/dist/esm/Terminal.js +0 -18
- package/dist/esm/Terminal.js.map +0 -1
- package/dist/esm/Transferable.js +0 -7
- package/dist/esm/Transferable.js.map +0 -1
- package/dist/esm/Worker.js +0 -36
- package/dist/esm/Worker.js.map +0 -1
- package/dist/esm/WorkerRunner.js +0 -21
- package/dist/esm/WorkerRunner.js.map +0 -1
- package/dist/esm/internal/commandExecutor.js +0 -120
- package/dist/esm/internal/commandExecutor.js.map +0 -1
- package/dist/esm/internal/error.js +0 -37
- package/dist/esm/internal/error.js.map +0 -1
- package/dist/esm/internal/fileSystem.js +0 -339
- package/dist/esm/internal/fileSystem.js.map +0 -1
- package/dist/esm/internal/http/etag.js +0 -43
- package/dist/esm/internal/http/etag.js.map +0 -1
- package/dist/esm/internal/http/multipart.js +0 -85
- package/dist/esm/internal/http/multipart.js.map +0 -1
- package/dist/esm/internal/http/nodeClient.js.map +0 -1
- package/dist/esm/internal/path.js +0 -41
- package/dist/esm/internal/path.js.map +0 -1
- package/dist/esm/internal/runtime.js +0 -27
- package/dist/esm/internal/runtime.js.map +0 -1
- package/dist/esm/internal/sink.js +0 -19
- package/dist/esm/internal/sink.js.map +0 -1
- package/dist/esm/internal/stream.js +0 -170
- package/dist/esm/internal/stream.js.map +0 -1
- package/dist/esm/internal/terminal.js +0 -89
- package/dist/esm/internal/terminal.js.map +0 -1
- package/src/Command.ts +0 -119
- package/src/CommandExecutor.ts +0 -49
- package/src/Effectify.ts +0 -22
- package/src/Error.ts +0 -34
- package/src/FileSystem.ts +0 -84
- package/src/Http/Etag.ts +0 -25
- package/src/Http/Multipart.ts +0 -47
- package/src/HttpClient.ts +0 -70
- package/src/HttpServer.ts +0 -110
- package/src/KeyValueStore.ts +0 -27
- package/src/Path.ts +0 -33
- package/src/Runtime.ts +0 -32
- package/src/Sink.ts +0 -31
- package/src/Stream.ts +0 -109
- package/src/Terminal.ts +0 -42
- package/src/Transferable.ts +0 -7
- package/src/Worker.ts +0 -65
- package/src/WorkerRunner.ts +0 -45
- package/src/internal/commandExecutor.ts +0 -203
- package/src/internal/error.ts +0 -51
- package/src/internal/fileSystem.ts +0 -575
- package/src/internal/http/etag.ts +0 -44
- package/src/internal/http/multipart.ts +0 -107
- package/src/internal/path.ts +0 -58
- package/src/internal/runtime.ts +0 -36
- package/src/internal/sink.ts +0 -57
- package/src/internal/stream.ts +0 -325
- package/src/internal/terminal.ts +0 -123
package/src/NodeSink.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import * as NodeTerminal from "@effect/platform-node-shared/NodeTerminal"
|
|
5
|
+
import type { Terminal, UserInput } from "@effect/platform/Terminal"
|
|
6
|
+
import type { Effect } from "effect/Effect"
|
|
7
|
+
import type { Layer } from "effect/Layer"
|
|
8
|
+
import type { Scope } from "effect/Scope"
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @since 1.0.0
|
|
12
|
+
* @category constructors
|
|
13
|
+
*/
|
|
14
|
+
export const make: (shouldQuit?: (input: UserInput) => boolean) => Effect<Terminal, never, Scope> = NodeTerminal.make
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @since 1.0.0
|
|
18
|
+
* @category layer
|
|
19
|
+
*/
|
|
20
|
+
export const layer: Layer<Terminal> = NodeTerminal.layer
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Worker from "@effect/platform/Worker"
|
|
5
|
+
import type * as Layer from "effect/Layer"
|
|
6
|
+
import type * as WorkerThreads from "node:worker_threads"
|
|
7
|
+
import * as internal from "./internal/worker.js"
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @since 1.0.0
|
|
11
|
+
* @category layers
|
|
12
|
+
*/
|
|
13
|
+
export const layerManager: Layer.Layer<Worker.WorkerManager> = internal.layerManager
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @since 1.0.0
|
|
17
|
+
* @category layers
|
|
18
|
+
*/
|
|
19
|
+
export const layerWorker: Layer.Layer<Worker.PlatformWorker> = internal.layerWorker
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @since 1.0.0
|
|
23
|
+
* @category layers
|
|
24
|
+
*/
|
|
25
|
+
export const layer: (
|
|
26
|
+
spawn: (id: number) => WorkerThreads.Worker
|
|
27
|
+
) => Layer.Layer<Worker.WorkerManager | Worker.Spawner, never, never> = internal.layer
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Runner from "@effect/platform/WorkerRunner"
|
|
5
|
+
import type * as Layer from "effect/Layer"
|
|
6
|
+
import * as internal from "./internal/workerRunner.js"
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @since 1.0.0
|
|
10
|
+
* @category layers
|
|
11
|
+
*/
|
|
12
|
+
export const layer: Layer.Layer<Runner.PlatformRunner> = internal.layer
|
package/src/index.ts
CHANGED
|
@@ -1,92 +1,64 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
export * as
|
|
4
|
+
export * as NodeCommandExecutor from "./NodeCommandExecutor.js"
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @since 1.0.0
|
|
8
8
|
*/
|
|
9
|
-
export * as
|
|
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"
|
|
9
|
+
export * as NodeContext from "./NodeContext.js"
|
|
30
10
|
|
|
31
11
|
/**
|
|
32
12
|
* @since 1.0.0
|
|
33
13
|
*/
|
|
34
|
-
export * as
|
|
14
|
+
export * as NodeFileSystem from "./NodeFileSystem.js"
|
|
35
15
|
|
|
36
16
|
/**
|
|
37
17
|
* @since 1.0.0
|
|
38
|
-
*
|
|
39
|
-
* Also includes exports from [`@effect/platform/KeyValueStore`](https://effect-ts.github.io/effect/platform/KeyValueStore.ts.html).
|
|
40
18
|
*/
|
|
41
|
-
export * as
|
|
19
|
+
export * as NodeHttpClient from "./NodeHttpClient.js"
|
|
42
20
|
|
|
43
21
|
/**
|
|
44
22
|
* @since 1.0.0
|
|
45
23
|
*/
|
|
46
|
-
export * as
|
|
24
|
+
export * as NodeHttpServer from "./NodeHttpServer.js"
|
|
47
25
|
|
|
48
26
|
/**
|
|
49
27
|
* @since 1.0.0
|
|
50
28
|
*/
|
|
51
|
-
export * as
|
|
29
|
+
export * as NodeKeyValueStore from "./NodeKeyValueStore.js"
|
|
52
30
|
|
|
53
31
|
/**
|
|
54
32
|
* @since 1.0.0
|
|
55
33
|
*/
|
|
56
|
-
export * as
|
|
34
|
+
export * as NodePath from "./NodePath.js"
|
|
57
35
|
|
|
58
36
|
/**
|
|
59
37
|
* @since 1.0.0
|
|
60
38
|
*/
|
|
61
|
-
export * as
|
|
39
|
+
export * as NodeRuntime from "./NodeRuntime.js"
|
|
62
40
|
|
|
63
41
|
/**
|
|
64
42
|
* @since 1.0.0
|
|
65
43
|
*/
|
|
66
|
-
export * as
|
|
44
|
+
export * as NodeSink from "./NodeSink.js"
|
|
67
45
|
|
|
68
46
|
/**
|
|
69
47
|
* @since 1.0.0
|
|
70
48
|
*/
|
|
71
|
-
export * as
|
|
49
|
+
export * as NodeStream from "./NodeStream.js"
|
|
72
50
|
|
|
73
51
|
/**
|
|
74
52
|
* @since 1.0.0
|
|
75
|
-
*
|
|
76
|
-
* Also includes exports from [`@effect/platform/Transferable`](https://effect-ts.github.io/effect/platform/Transferable.ts.html).
|
|
77
53
|
*/
|
|
78
|
-
export * as
|
|
54
|
+
export * as NodeTerminal from "./NodeTerminal.js"
|
|
79
55
|
|
|
80
56
|
/**
|
|
81
57
|
* @since 1.0.0
|
|
82
|
-
*
|
|
83
|
-
* Also includes exports from [`@effect/platform/Worker`](https://effect-ts.github.io/effect/platform/Worker.ts.html).
|
|
84
58
|
*/
|
|
85
|
-
export * as
|
|
59
|
+
export * as NodeWorker from "./NodeWorker.js"
|
|
86
60
|
|
|
87
61
|
/**
|
|
88
62
|
* @since 1.0.0
|
|
89
|
-
*
|
|
90
|
-
* Also includes exports from [`@effect/platform/WorkerRunner`](https://effect-ts.github.io/effect/platform/WorkerRunner.ts.html).
|
|
91
63
|
*/
|
|
92
|
-
export * as
|
|
64
|
+
export * as NodeWorkerRunner from "./NodeWorkerRunner.js"
|
|
@@ -14,8 +14,8 @@ import * as Http from "node:http"
|
|
|
14
14
|
import * as Https from "node:https"
|
|
15
15
|
import { Readable } from "node:stream"
|
|
16
16
|
import { pipeline } from "node:stream/promises"
|
|
17
|
-
import type * as NodeClient from "../../
|
|
18
|
-
import * as NodeSink from "../../
|
|
17
|
+
import type * as NodeClient from "../../NodeHttpClient.js"
|
|
18
|
+
import * as NodeSink from "../../NodeSink.js"
|
|
19
19
|
import { IncomingMessageImpl } from "./incomingMessage.js"
|
|
20
20
|
|
|
21
21
|
/** @internal */
|
|
@@ -24,10 +24,10 @@ export const HttpAgentTypeId: NodeClient.HttpAgentTypeId = Symbol.for(
|
|
|
24
24
|
) as NodeClient.HttpAgentTypeId
|
|
25
25
|
|
|
26
26
|
/** @internal */
|
|
27
|
-
export const HttpAgent = Context.
|
|
27
|
+
export const HttpAgent = Context.GenericTag<NodeClient.HttpAgent>("@effect/platform-node/Http/NodeClient/HttpAgent")
|
|
28
28
|
|
|
29
29
|
/** @internal */
|
|
30
|
-
export const makeAgent = (options?: Https.AgentOptions): Effect.Effect<
|
|
30
|
+
export const makeAgent = (options?: Https.AgentOptions): Effect.Effect<NodeClient.HttpAgent, never, Scope.Scope> =>
|
|
31
31
|
Effect.map(
|
|
32
32
|
Effect.all([
|
|
33
33
|
Effect.acquireRelease(
|
|
@@ -47,7 +47,7 @@ export const makeAgent = (options?: Https.AgentOptions): Effect.Effect<Scope.Sco
|
|
|
47
47
|
)
|
|
48
48
|
|
|
49
49
|
/** @internal */
|
|
50
|
-
export const makeAgentLayer = (options?: Https.AgentOptions): Layer.Layer<
|
|
50
|
+
export const makeAgentLayer = (options?: Https.AgentOptions): Layer.Layer<NodeClient.HttpAgent> =>
|
|
51
51
|
Layer.scoped(HttpAgent, makeAgent(options))
|
|
52
52
|
|
|
53
53
|
/** @internal */
|
|
@@ -93,8 +93,8 @@ const sendBody = (
|
|
|
93
93
|
nodeRequest: Http.ClientRequest,
|
|
94
94
|
request: ClientRequest.ClientRequest,
|
|
95
95
|
body: Body.Body
|
|
96
|
-
): Effect.Effect<
|
|
97
|
-
Effect.suspend((): Effect.Effect<
|
|
96
|
+
): Effect.Effect<void, Error.RequestError> =>
|
|
97
|
+
Effect.suspend((): Effect.Effect<void, Error.RequestError> => {
|
|
98
98
|
switch (body._tag) {
|
|
99
99
|
case "Empty": {
|
|
100
100
|
nodeRequest.end()
|
|
@@ -142,7 +142,7 @@ const sendBody = (
|
|
|
142
142
|
})
|
|
143
143
|
|
|
144
144
|
const waitForResponse = (nodeRequest: Http.ClientRequest, request: ClientRequest.ClientRequest) =>
|
|
145
|
-
Effect.async<
|
|
145
|
+
Effect.async<Http.IncomingMessage, Error.RequestError>((resume) => {
|
|
146
146
|
function onError(error: Error) {
|
|
147
147
|
resume(Effect.fail(Error.RequestError({
|
|
148
148
|
request,
|
|
@@ -167,7 +167,7 @@ const waitForResponse = (nodeRequest: Http.ClientRequest, request: ClientRequest
|
|
|
167
167
|
})
|
|
168
168
|
|
|
169
169
|
const waitForFinish = (nodeRequest: Http.ClientRequest, request: ClientRequest.ClientRequest) =>
|
|
170
|
-
Effect.async<
|
|
170
|
+
Effect.async<void, Error.RequestError>((resume) => {
|
|
171
171
|
function onError(error: Error) {
|
|
172
172
|
resume(Effect.fail(Error.RequestError({
|
|
173
173
|
request,
|
|
@@ -210,7 +210,7 @@ class ClientResponseImpl extends IncomingMessageImpl<Error.ResponseError> implem
|
|
|
210
210
|
return this.source.statusCode!
|
|
211
211
|
}
|
|
212
212
|
|
|
213
|
-
get formData(): Effect.Effect<
|
|
213
|
+
get formData(): Effect.Effect<FormData, Error.ResponseError> {
|
|
214
214
|
return Effect.tryPromise({
|
|
215
215
|
try: () => {
|
|
216
216
|
const init: {
|
|
@@ -6,7 +6,7 @@ import * as FiberRef from "effect/FiberRef"
|
|
|
6
6
|
import * as Option from "effect/Option"
|
|
7
7
|
import type * as Stream from "effect/Stream"
|
|
8
8
|
import type * as Http from "node:http"
|
|
9
|
-
import * as NodeStream from "../../
|
|
9
|
+
import * as NodeStream from "../../NodeStream.js"
|
|
10
10
|
|
|
11
11
|
/** @internal */
|
|
12
12
|
export class IncomingMessageImpl<E> implements IncomingMessage.IncomingMessage<E> {
|
|
@@ -28,8 +28,8 @@ export class IncomingMessageImpl<E> implements IncomingMessage.IncomingMessage<E
|
|
|
28
28
|
return Option.fromNullable(this.remoteAddressOverride ?? this.source.socket.remoteAddress)
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
private textEffect: Effect.Effect<
|
|
32
|
-
get text(): Effect.Effect<
|
|
31
|
+
private textEffect: Effect.Effect<string, E> | undefined
|
|
32
|
+
get text(): Effect.Effect<string, E> {
|
|
33
33
|
if (this.textEffect) {
|
|
34
34
|
return this.textEffect
|
|
35
35
|
}
|
|
@@ -46,14 +46,14 @@ export class IncomingMessageImpl<E> implements IncomingMessage.IncomingMessage<E
|
|
|
46
46
|
return this.textEffect
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
get json(): Effect.Effect<
|
|
49
|
+
get json(): Effect.Effect<unknown, E> {
|
|
50
50
|
return Effect.tryMap(this.text, {
|
|
51
51
|
try: (_) => _ === "" ? null : JSON.parse(_) as unknown,
|
|
52
52
|
catch: this.onError
|
|
53
53
|
})
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
get urlParamsBody(): Effect.Effect<
|
|
56
|
+
get urlParamsBody(): Effect.Effect<UrlParams.UrlParams, E> {
|
|
57
57
|
return Effect.flatMap(this.text, (_) =>
|
|
58
58
|
Effect.try({
|
|
59
59
|
try: () => UrlParams.fromInput(new URLSearchParams(_)),
|
|
@@ -61,14 +61,14 @@ export class IncomingMessageImpl<E> implements IncomingMessage.IncomingMessage<E
|
|
|
61
61
|
}))
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
get stream(): Stream.Stream<
|
|
64
|
+
get stream(): Stream.Stream<Uint8Array, E> {
|
|
65
65
|
return NodeStream.fromReadable<E, Uint8Array>(
|
|
66
66
|
() => this.source,
|
|
67
67
|
this.onError
|
|
68
68
|
)
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
get arrayBuffer(): Effect.Effect<
|
|
71
|
+
get arrayBuffer(): Effect.Effect<ArrayBuffer, E> {
|
|
72
72
|
return Effect.flatMap(
|
|
73
73
|
FiberRef.get(IncomingMessage.maxBodySize),
|
|
74
74
|
(maxBodySize) =>
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as EtagImpl from "@effect/platform-node-shared/Http/Etag"
|
|
1
2
|
import * as Headers from "@effect/platform/Http/Headers"
|
|
2
3
|
import * as Platform from "@effect/platform/Http/Platform"
|
|
3
4
|
import * as ServerResponse from "@effect/platform/Http/ServerResponse"
|
|
@@ -6,8 +7,7 @@ import * as Layer from "effect/Layer"
|
|
|
6
7
|
import Mime from "mime"
|
|
7
8
|
import * as Fs from "node:fs"
|
|
8
9
|
import { Readable } from "node:stream"
|
|
9
|
-
import * as FileSystem from "../../
|
|
10
|
-
import * as Etag from "../../Http/Etag.js"
|
|
10
|
+
import * as FileSystem from "../../NodeFileSystem.js"
|
|
11
11
|
|
|
12
12
|
/** @internal */
|
|
13
13
|
export const make = Platform.make({
|
|
@@ -42,5 +42,5 @@ export const make = Platform.make({
|
|
|
42
42
|
export const layer = pipe(
|
|
43
43
|
Layer.effect(Platform.Platform, make),
|
|
44
44
|
Layer.provide(FileSystem.layer),
|
|
45
|
-
Layer.provide(
|
|
45
|
+
Layer.provide(EtagImpl.layer)
|
|
46
46
|
)
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import * as Etag from "@effect/platform-node-shared/Http/Etag"
|
|
2
|
+
import * as MultipartNode from "@effect/platform-node-shared/Http/Multipart"
|
|
1
3
|
import * as FileSystem from "@effect/platform/FileSystem"
|
|
2
4
|
import * as App from "@effect/platform/Http/App"
|
|
3
5
|
import type * as Headers from "@effect/platform/Http/Headers"
|
|
@@ -23,21 +25,21 @@ import type * as Http from "node:http"
|
|
|
23
25
|
import type * as Net from "node:net"
|
|
24
26
|
import { Readable } from "node:stream"
|
|
25
27
|
import { pipeline } from "node:stream/promises"
|
|
26
|
-
import * as
|
|
28
|
+
import * as NodeContext from "../../NodeContext.js"
|
|
29
|
+
import * as NodeSink from "../../NodeSink.js"
|
|
27
30
|
import { IncomingMessageImpl } from "./incomingMessage.js"
|
|
28
|
-
import * as internalMultipart from "./multipart.js"
|
|
29
31
|
import * as internalPlatform from "./platform.js"
|
|
30
32
|
|
|
31
33
|
/** @internal */
|
|
32
34
|
export const make = (
|
|
33
35
|
evaluate: LazyArg<Http.Server>,
|
|
34
36
|
options: Net.ListenOptions
|
|
35
|
-
): Effect.Effect<
|
|
37
|
+
): Effect.Effect<Server.Server, Error.ServeError, Scope.Scope> =>
|
|
36
38
|
Effect.gen(function*(_) {
|
|
37
39
|
const server = yield* _(Effect.acquireRelease(
|
|
38
40
|
Effect.sync(evaluate),
|
|
39
41
|
(server) =>
|
|
40
|
-
Effect.async<
|
|
42
|
+
Effect.async<void>((resume) => {
|
|
41
43
|
server.close((error) => {
|
|
42
44
|
if (error) {
|
|
43
45
|
resume(Effect.die(error))
|
|
@@ -48,7 +50,7 @@ export const make = (
|
|
|
48
50
|
})
|
|
49
51
|
))
|
|
50
52
|
|
|
51
|
-
yield* _(Effect.async<
|
|
53
|
+
yield* _(Effect.async<void, Error.ServeError>((resume) => {
|
|
52
54
|
server.on("error", (error) => {
|
|
53
55
|
resume(Effect.fail(Error.ServeError({ error })))
|
|
54
56
|
})
|
|
@@ -67,7 +69,7 @@ export const make = (
|
|
|
67
69
|
} :
|
|
68
70
|
{
|
|
69
71
|
_tag: "TcpAddress",
|
|
70
|
-
hostname: address.address,
|
|
72
|
+
hostname: address.address === "::" ? "0.0.0.0" : address.address,
|
|
71
73
|
port: address.port
|
|
72
74
|
},
|
|
73
75
|
serve: (httpApp, middleware) =>
|
|
@@ -91,17 +93,17 @@ export const make = (
|
|
|
91
93
|
/** @internal */
|
|
92
94
|
export const makeHandler: {
|
|
93
95
|
<R, E>(httpApp: App.Default<R, E>): Effect.Effect<
|
|
94
|
-
|
|
96
|
+
(nodeRequest: Http.IncomingMessage, nodeResponse: Http.ServerResponse) => void,
|
|
95
97
|
never,
|
|
96
|
-
|
|
98
|
+
Exclude<R, ServerRequest.ServerRequest | Scope.Scope>
|
|
97
99
|
>
|
|
98
100
|
<R, E, App extends App.Default<any, any>>(
|
|
99
101
|
httpApp: App.Default<R, E>,
|
|
100
102
|
middleware: Middleware.Middleware.Applied<R, E, App>
|
|
101
103
|
): Effect.Effect<
|
|
102
|
-
|
|
104
|
+
(nodeRequest: Http.IncomingMessage, nodeResponse: Http.ServerResponse) => void,
|
|
103
105
|
never,
|
|
104
|
-
|
|
106
|
+
Exclude<Effect.Effect.Context<App>, ServerRequest.ServerRequest | Scope.Scope>
|
|
105
107
|
>
|
|
106
108
|
} = <R, E>(httpApp: App.Default<R, E>, middleware?: Middleware.Middleware) => {
|
|
107
109
|
const handledApp = Effect.scoped(
|
|
@@ -209,27 +211,27 @@ class ServerRequestImpl extends IncomingMessageImpl<Error.RequestError> implemen
|
|
|
209
211
|
|
|
210
212
|
private multipartEffect:
|
|
211
213
|
| Effect.Effect<
|
|
212
|
-
|
|
214
|
+
Multipart.Persisted,
|
|
213
215
|
Multipart.MultipartError,
|
|
214
|
-
|
|
216
|
+
Scope.Scope | FileSystem.FileSystem | Path.Path
|
|
215
217
|
>
|
|
216
218
|
| undefined
|
|
217
219
|
get multipart(): Effect.Effect<
|
|
218
|
-
|
|
220
|
+
Multipart.Persisted,
|
|
219
221
|
Multipart.MultipartError,
|
|
220
|
-
|
|
222
|
+
Scope.Scope | FileSystem.FileSystem | Path.Path
|
|
221
223
|
> {
|
|
222
224
|
if (this.multipartEffect) {
|
|
223
225
|
return this.multipartEffect
|
|
224
226
|
}
|
|
225
227
|
this.multipartEffect = Effect.runSync(Effect.cached(
|
|
226
|
-
|
|
228
|
+
MultipartNode.persisted(this.source, this.source.headers)
|
|
227
229
|
))
|
|
228
230
|
return this.multipartEffect
|
|
229
231
|
}
|
|
230
232
|
|
|
231
|
-
get multipartStream(): Stream.Stream<
|
|
232
|
-
return
|
|
233
|
+
get multipartStream(): Stream.Stream<Multipart.Part, Multipart.MultipartError> {
|
|
234
|
+
return MultipartNode.stream(this.source, this.source.headers)
|
|
233
235
|
}
|
|
234
236
|
|
|
235
237
|
toString(): string {
|
|
@@ -247,14 +249,22 @@ class ServerRequestImpl extends IncomingMessageImpl<Error.RequestError> implemen
|
|
|
247
249
|
}
|
|
248
250
|
}
|
|
249
251
|
|
|
252
|
+
/** @internal */
|
|
253
|
+
export const layerServer = (
|
|
254
|
+
evaluate: LazyArg<Http.Server>,
|
|
255
|
+
options: Net.ListenOptions
|
|
256
|
+
) => Layer.scoped(Server.Server, make(evaluate, options))
|
|
257
|
+
|
|
250
258
|
/** @internal */
|
|
251
259
|
export const layer = (
|
|
252
260
|
evaluate: LazyArg<Http.Server>,
|
|
253
261
|
options: Net.ListenOptions
|
|
254
262
|
) =>
|
|
255
|
-
Layer.
|
|
263
|
+
Layer.mergeAll(
|
|
256
264
|
Layer.scoped(Server.Server, make(evaluate, options)),
|
|
257
|
-
internalPlatform.layer
|
|
265
|
+
internalPlatform.layer,
|
|
266
|
+
Etag.layerWeak,
|
|
267
|
+
NodeContext.layer
|
|
258
268
|
)
|
|
259
269
|
|
|
260
270
|
/** @internal */
|
|
@@ -262,16 +272,18 @@ export const layerConfig = (
|
|
|
262
272
|
evaluate: LazyArg<Http.Server>,
|
|
263
273
|
options: Config.Config.Wrap<Net.ListenOptions>
|
|
264
274
|
) =>
|
|
265
|
-
Layer.
|
|
275
|
+
Layer.mergeAll(
|
|
266
276
|
Layer.scoped(
|
|
267
277
|
Server.Server,
|
|
268
278
|
Effect.flatMap(Config.unwrap(options), (options) => make(evaluate, options))
|
|
269
279
|
),
|
|
270
|
-
internalPlatform.layer
|
|
280
|
+
internalPlatform.layer,
|
|
281
|
+
Etag.layerWeak,
|
|
282
|
+
NodeContext.layer
|
|
271
283
|
)
|
|
272
284
|
|
|
273
285
|
const handleResponse = (request: ServerRequest.ServerRequest, response: ServerResponse.ServerResponse) =>
|
|
274
|
-
Effect.suspend((): Effect.Effect<
|
|
286
|
+
Effect.suspend((): Effect.Effect<void, Error.ResponseError> => {
|
|
275
287
|
const nodeResponse = (request as ServerRequestImpl).response
|
|
276
288
|
if (request.method === "HEAD") {
|
|
277
289
|
nodeResponse.writeHead(response.status, response.headers)
|
|
@@ -311,7 +323,7 @@ const handleResponse = (request: ServerRequest.ServerRequest, response: ServerRe
|
|
|
311
323
|
return Effect.unit
|
|
312
324
|
}
|
|
313
325
|
case "FormData": {
|
|
314
|
-
return Effect.async<
|
|
326
|
+
return Effect.async<void, Error.ResponseError>((resume) => {
|
|
315
327
|
const r = new Response(body.formData)
|
|
316
328
|
const headers = {
|
|
317
329
|
...response.headers,
|
package/src/internal/worker.ts
CHANGED
|
@@ -13,7 +13,7 @@ const platformWorkerImpl = Worker.PlatformWorker.of({
|
|
|
13
13
|
const worker = worker_ as WorkerThreads.Worker
|
|
14
14
|
yield* _(Effect.addFinalizer(() =>
|
|
15
15
|
pipe(
|
|
16
|
-
Effect.async<
|
|
16
|
+
Effect.async<void>((resume) => {
|
|
17
17
|
worker.once("exit", () => {
|
|
18
18
|
resume(Effect.unit)
|
|
19
19
|
})
|
|
@@ -26,7 +26,7 @@ const platformWorkerImpl = Worker.PlatformWorker.of({
|
|
|
26
26
|
const queue = yield* _(Queue.unbounded<Worker.BackingWorker.Message<O>>())
|
|
27
27
|
yield* _(Effect.addFinalizer(() => Queue.shutdown(queue)))
|
|
28
28
|
const fiber = yield* _(
|
|
29
|
-
Effect.async<never, WorkerError
|
|
29
|
+
Effect.async<never, WorkerError>((resume) => {
|
|
30
30
|
worker.on("message", (message: Worker.BackingWorker.Message<O>) => {
|
|
31
31
|
queue.unsafeOffer(message)
|
|
32
32
|
})
|
|
@@ -60,15 +60,8 @@ export const layerWorker = Layer.succeed(Worker.PlatformWorker, platformWorkerIm
|
|
|
60
60
|
export const layerManager = Layer.provide(Worker.layerManager, layerWorker)
|
|
61
61
|
|
|
62
62
|
/** @internal */
|
|
63
|
-
export const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
/** @internal */
|
|
69
|
-
export const makePoolSerialized = Worker.makePoolSerialized<WorkerThreads.Worker>()
|
|
70
|
-
|
|
71
|
-
/** @internal */
|
|
72
|
-
export const makePoolSerializedLayer = Worker.makePoolSerializedLayer<WorkerThreads.Worker>(
|
|
73
|
-
layerManager
|
|
74
|
-
)
|
|
63
|
+
export const layer = (spawn: (id: number) => WorkerThreads.Worker) =>
|
|
64
|
+
Layer.merge(
|
|
65
|
+
layerManager,
|
|
66
|
+
Worker.layerSpawner(spawn)
|
|
67
|
+
)
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { WorkerError } from "@effect/platform/WorkerError"
|
|
2
2
|
import * as Runner from "@effect/platform/WorkerRunner"
|
|
3
|
-
import type * as Schema from "@effect/schema/Schema"
|
|
4
3
|
import * as Cause from "effect/Cause"
|
|
5
4
|
import * as Effect from "effect/Effect"
|
|
6
5
|
import * as Layer from "effect/Layer"
|
|
7
6
|
import * as Queue from "effect/Queue"
|
|
8
7
|
import * as Schedule from "effect/Schedule"
|
|
9
|
-
import type * as Stream from "effect/Stream"
|
|
10
8
|
import * as WorkerThreads from "node:worker_threads"
|
|
11
9
|
|
|
12
10
|
const platformRunnerImpl = Runner.PlatformRunner.of({
|
|
13
11
|
[Runner.PlatformRunnerTypeId]: Runner.PlatformRunnerTypeId,
|
|
14
|
-
start<I, O>(shutdown: Effect.Effect<
|
|
12
|
+
start<I, O>(shutdown: Effect.Effect<void>) {
|
|
15
13
|
return Effect.gen(function*(_) {
|
|
16
14
|
if (!WorkerThreads.parentPort) {
|
|
17
15
|
return yield* _(Effect.fail(WorkerError("spawn", "not in worker")))
|
|
@@ -19,7 +17,7 @@ const platformRunnerImpl = Runner.PlatformRunner.of({
|
|
|
19
17
|
const port = WorkerThreads.parentPort
|
|
20
18
|
const queue = yield* _(Queue.unbounded<I>())
|
|
21
19
|
yield* _(
|
|
22
|
-
Effect.async<never, WorkerError
|
|
20
|
+
Effect.async<never, WorkerError>((resume) => {
|
|
23
21
|
port.on("message", (message: Runner.BackingRunner.Message<I>) => {
|
|
24
22
|
if (message[0] === 0) {
|
|
25
23
|
queue.unsafeOffer(message[1])
|
|
@@ -53,25 +51,4 @@ const platformRunnerImpl = Runner.PlatformRunner.of({
|
|
|
53
51
|
})
|
|
54
52
|
|
|
55
53
|
/** @internal */
|
|
56
|
-
export const
|
|
57
|
-
|
|
58
|
-
/** @internal */
|
|
59
|
-
export const layer = <I, R, E, O>(
|
|
60
|
-
process: (request: I) => Stream.Stream<R, E, O>,
|
|
61
|
-
options?: Runner.Runner.Options<I, E, O>
|
|
62
|
-
): Layer.Layer<R, WorkerError, never> => Layer.provide(Runner.layer(process, options), layerPlatform)
|
|
63
|
-
|
|
64
|
-
/** @internal */
|
|
65
|
-
export const layerSerialized = <
|
|
66
|
-
R,
|
|
67
|
-
I,
|
|
68
|
-
A extends Schema.TaggedRequest.Any,
|
|
69
|
-
Handlers extends Runner.SerializedRunner.Handlers<A>
|
|
70
|
-
>(
|
|
71
|
-
schema: Schema.Schema<R, I, A>,
|
|
72
|
-
handlers: Handlers
|
|
73
|
-
): Layer.Layer<
|
|
74
|
-
R | Runner.SerializedRunner.HandlersContext<Handlers>,
|
|
75
|
-
WorkerError,
|
|
76
|
-
never
|
|
77
|
-
> => Layer.provide(Runner.layerSerialized(schema, handlers), layerPlatform)
|
|
54
|
+
export const layer = Layer.succeed(Runner.PlatformRunner, platformRunnerImpl)
|
package/Command/package.json
DELETED
package/Effectify/package.json
DELETED
package/Error/package.json
DELETED
package/FileSystem/package.json
DELETED
package/Http/Etag/package.json
DELETED