@effect/platform-node-shared 4.0.0-beta.1 → 4.0.0-beta.100
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/README.md +3 -3
- package/dist/NodeChildProcessSpawner.d.ts +19 -5
- package/dist/NodeChildProcessSpawner.d.ts.map +1 -1
- package/dist/NodeChildProcessSpawner.js +105 -118
- package/dist/NodeChildProcessSpawner.js.map +1 -1
- package/dist/NodeClusterSocket.d.ts +10 -4
- package/dist/NodeClusterSocket.d.ts.map +1 -1
- package/dist/NodeClusterSocket.js +22 -8
- package/dist/NodeClusterSocket.js.map +1 -1
- package/dist/NodeCrypto.d.ts +27 -0
- package/dist/NodeCrypto.d.ts.map +1 -0
- package/dist/NodeCrypto.js +55 -0
- package/dist/NodeCrypto.js.map +1 -0
- package/dist/NodeFileSystem.d.ts +5 -2
- package/dist/NodeFileSystem.d.ts.map +1 -1
- package/dist/NodeFileSystem.js +44 -28
- package/dist/NodeFileSystem.js.map +1 -1
- package/dist/NodePath.d.ts +15 -6
- package/dist/NodePath.d.ts.map +1 -1
- package/dist/NodePath.js +23 -7
- package/dist/NodePath.js.map +1 -1
- package/dist/NodeRuntime.d.ts +26 -7
- package/dist/NodeRuntime.d.ts.map +1 -1
- package/dist/NodeRuntime.js +8 -8
- package/dist/NodeRuntime.js.map +1 -1
- package/dist/NodeSink.d.ts +33 -4
- package/dist/NodeSink.d.ts.map +1 -1
- package/dist/NodeSink.js +31 -4
- package/dist/NodeSink.js.map +1 -1
- package/dist/NodeSocket.d.ts +43 -12
- package/dist/NodeSocket.d.ts.map +1 -1
- package/dist/NodeSocket.js +41 -17
- package/dist/NodeSocket.js.map +1 -1
- package/dist/NodeSocketServer.d.ts +25 -8
- package/dist/NodeSocketServer.d.ts.map +1 -1
- package/dist/NodeSocketServer.js +29 -12
- package/dist/NodeSocketServer.js.map +1 -1
- package/dist/NodeStdio.d.ts +6 -5
- package/dist/NodeStdio.d.ts.map +1 -1
- package/dist/NodeStdio.js +26 -10
- package/dist/NodeStdio.js.map +1 -1
- package/dist/NodeStream.d.ts +76 -20
- package/dist/NodeStream.d.ts.map +1 -1
- package/dist/NodeStream.js +74 -25
- package/dist/NodeStream.js.map +1 -1
- package/dist/NodeTerminal.d.ts +9 -2
- package/dist/NodeTerminal.d.ts.map +1 -1
- package/dist/NodeTerminal.js +13 -3
- package/dist/NodeTerminal.js.map +1 -1
- package/dist/index.d.ts +52 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/utils.js +1 -1
- package/dist/internal/utils.js.map +1 -1
- package/package.json +9 -9
- package/src/NodeChildProcessSpawner.ts +157 -148
- package/src/NodeClusterSocket.ts +22 -8
- package/src/NodeCrypto.ts +60 -0
- package/src/NodeFileSystem.ts +58 -30
- package/src/NodePath.ts +23 -7
- package/src/NodeRuntime.ts +28 -13
- package/src/NodeSink.ts +40 -4
- package/src/NodeSocket.ts +51 -20
- package/src/NodeSocketServer.ts +39 -13
- package/src/NodeStdio.ts +42 -24
- package/src/NodeStream.ts +97 -33
- package/src/NodeTerminal.ts +22 -4
- package/src/index.ts +65 -0
- package/src/internal/utils.ts +4 -4
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# `@effect/platform-node`
|
|
1
|
+
# `@effect/platform-node-shared`
|
|
2
2
|
|
|
3
|
-
Provides Node.js-
|
|
3
|
+
Provides shared Node.js-compatible implementations used by the Effect Node.js and Bun platform packages.
|
|
4
4
|
|
|
5
5
|
## Documentation
|
|
6
6
|
|
|
7
|
-
- **API Reference**: [View the full documentation](https://effect-ts.github.io/effect/docs/platform-node).
|
|
7
|
+
- **API Reference**: [View the full documentation](https://effect-ts.github.io/effect/docs/platform-node-shared).
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Node.js implementation of
|
|
2
|
+
* Shared Node.js implementation of the child process spawner service.
|
|
3
|
+
*
|
|
4
|
+
* This module adapts `node:child_process.spawn` to the Effect
|
|
5
|
+
* `ChildProcessSpawner` service. Provide {@link layer} to run `ChildProcess`
|
|
6
|
+
* commands in Node-compatible runtimes: commands get scoped process handles
|
|
7
|
+
* with stdin sinks, stdout and stderr streams, exit-code waiting,
|
|
8
|
+
* interruption-time cleanup, process killing, and custom file-descriptor pipes.
|
|
9
|
+
*
|
|
10
|
+
* The implementation sits below the command-building API. It validates and
|
|
11
|
+
* resolves `cwd` through the Effect `FileSystem` and `Path` services,
|
|
12
|
+
* translates Node errno failures to `PlatformError`, and uses scopes to
|
|
13
|
+
* terminate referenced children when the owning effect is interrupted or
|
|
14
|
+
* finalized. Pipelines are flattened by {@link flattenCommand} and spawned one
|
|
15
|
+
* process at a time, wiring the selected source stream (`stdout`, `stderr`,
|
|
16
|
+
* `all`, or `fdN`) to the destination `stdin` or `fdN`.
|
|
3
17
|
*
|
|
4
18
|
* @since 4.0.0
|
|
5
19
|
*/
|
|
@@ -10,17 +24,17 @@ import * as Path from "effect/Path";
|
|
|
10
24
|
import * as ChildProcess from "effect/unstable/process/ChildProcess";
|
|
11
25
|
import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner";
|
|
12
26
|
/**
|
|
13
|
-
* Layer
|
|
27
|
+
* Layer that provides the `NodeChildProcessSpawner` implementation.
|
|
14
28
|
*
|
|
29
|
+
* @category layers
|
|
15
30
|
* @since 4.0.0
|
|
16
|
-
* @category Layers
|
|
17
31
|
*/
|
|
18
32
|
export declare const layer: Layer.Layer<ChildProcessSpawner, never, FileSystem.FileSystem | Path.Path>;
|
|
19
33
|
/**
|
|
20
34
|
* Result of flattening a pipeline of commands.
|
|
21
35
|
*
|
|
36
|
+
* @category models
|
|
22
37
|
* @since 4.0.0
|
|
23
|
-
* @category Models
|
|
24
38
|
*/
|
|
25
39
|
export interface FlattenedPipeline {
|
|
26
40
|
readonly commands: Arr.NonEmptyReadonlyArray<ChildProcess.StandardCommand>;
|
|
@@ -30,8 +44,8 @@ export interface FlattenedPipeline {
|
|
|
30
44
|
* Flattens a `Command` into an array of `StandardCommand`s along with pipe
|
|
31
45
|
* options for each connection.
|
|
32
46
|
*
|
|
47
|
+
* @category transforming
|
|
33
48
|
* @since 4.0.0
|
|
34
|
-
* @category Utilities
|
|
35
49
|
*/
|
|
36
50
|
export declare const flattenCommand: (command: ChildProcess.Command) => FlattenedPipeline;
|
|
37
51
|
//# sourceMappingURL=NodeChildProcessSpawner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeChildProcessSpawner.d.ts","sourceRoot":"","sources":["../src/NodeChildProcessSpawner.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"NodeChildProcessSpawner.d.ts","sourceRoot":"","sources":["../src/NodeChildProcessSpawner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAA;AAIxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AAMnC,OAAO,KAAK,YAAY,MAAM,sCAAsC,CAAA;AAEpE,OAAO,EACL,mBAAmB,EAKpB,MAAM,6CAA6C,CAAA;AAkmBpD;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,mBAAmB,EACnB,KAAK,EACL,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CACQ,CAAA;AAM3C;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;IAC1E,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;CAC9D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,YAChB,YAAY,CAAC,OAAO,KAC5B,iBAoCF,CAAA"}
|
|
@@ -8,9 +8,9 @@ import * as Predicate from "effect/Predicate";
|
|
|
8
8
|
import * as Sink from "effect/Sink";
|
|
9
9
|
import * as Stream from "effect/Stream";
|
|
10
10
|
import * as ChildProcess from "effect/unstable/process/ChildProcess";
|
|
11
|
-
import { ChildProcessSpawner, ExitCode, makeHandle, ProcessId } from "effect/unstable/process/ChildProcessSpawner";
|
|
11
|
+
import { ChildProcessSpawner, ExitCode, make as makeSpawner, makeHandle, ProcessId } from "effect/unstable/process/ChildProcessSpawner";
|
|
12
12
|
import * as NodeChildProcess from "node:child_process";
|
|
13
|
-
import
|
|
13
|
+
import { PassThrough } from "node:stream";
|
|
14
14
|
import { handleErrnoException } from "./internal/utils.js";
|
|
15
15
|
import * as NodeSink from "./NodeSink.js";
|
|
16
16
|
import * as NodeStream from "./NodeStream.js";
|
|
@@ -147,14 +147,14 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
147
147
|
{
|
|
148
148
|
// Create a sink to write to for input file descriptors
|
|
149
149
|
let sink = Sink.drain;
|
|
150
|
-
if (
|
|
150
|
+
if (nodeStream && "write" in nodeStream) {
|
|
151
151
|
sink = NodeSink.fromWritable({
|
|
152
152
|
evaluate: () => nodeStream,
|
|
153
153
|
onError: error => toPlatformError(`fromWritable(fd${fd})`, toError(error), command)
|
|
154
154
|
});
|
|
155
155
|
}
|
|
156
156
|
// If user provided a stream, pipe it into the sink
|
|
157
|
-
if (
|
|
157
|
+
if (config.stream) {
|
|
158
158
|
yield* Effect.forkScoped(Stream.run(config.stream, sink));
|
|
159
159
|
}
|
|
160
160
|
inputSinks.set(fd, sink);
|
|
@@ -164,14 +164,17 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
164
164
|
{
|
|
165
165
|
// Create a stream to read from for output file descriptors
|
|
166
166
|
let stream = Stream.empty;
|
|
167
|
-
if (
|
|
167
|
+
if (nodeStream && "read" in nodeStream) {
|
|
168
|
+
const passThrough = new PassThrough();
|
|
169
|
+
nodeStream.on("error", error => passThrough.destroy(error));
|
|
170
|
+
nodeStream.pipe(passThrough);
|
|
168
171
|
stream = NodeStream.fromReadable({
|
|
169
|
-
evaluate: () =>
|
|
172
|
+
evaluate: () => passThrough,
|
|
170
173
|
onError: error => toPlatformError(`fromReadable(fd${fd})`, toError(error), command)
|
|
171
174
|
});
|
|
172
175
|
}
|
|
173
176
|
// If user provided a sink, transduce the stream through it
|
|
174
|
-
if (
|
|
177
|
+
if (config.sink) {
|
|
175
178
|
stream = Stream.transduce(stream, config.sink);
|
|
176
179
|
}
|
|
177
180
|
outputStreams.set(fd, stream);
|
|
@@ -202,104 +205,32 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
202
205
|
}
|
|
203
206
|
return Effect.succeed(sink);
|
|
204
207
|
});
|
|
205
|
-
/**
|
|
206
|
-
* Given that `NodeStream.fromReadable` uses `.read` to read data from the
|
|
207
|
-
* provided `Readable` stream, consumers would race to read data from the
|
|
208
|
-
* `handle.stdout` and `handle.stderr` streams if they were also simultaneously
|
|
209
|
-
* reading from the `handle.all` stream.
|
|
210
|
-
*
|
|
211
|
-
* To solve this, we leverage the fact that NodeJS `Readable` streams can be
|
|
212
|
-
* piped to multiple destinations simultaneously. The logic for the solution
|
|
213
|
-
* is as follows:
|
|
214
|
-
*
|
|
215
|
-
* 1. Pipe each original stream to two `PassThrough` streams:
|
|
216
|
-
* - One dedicated PassThrough for individual access (.stdout / .stderr)
|
|
217
|
-
* - One shared PassThrough for combined access (.all)
|
|
218
|
-
* 2. Create Effect streams from the PassThrough streams (not the originals)
|
|
219
|
-
*
|
|
220
|
-
* **Diagram**
|
|
221
|
-
*
|
|
222
|
-
* ┌─────────────┐
|
|
223
|
-
* ┌────►│ passthrough │────► Effect stdout Stream
|
|
224
|
-
* │ └─────────────┘
|
|
225
|
-
* childProcess.stdout ────┤
|
|
226
|
-
* │ ┌─────────────┐
|
|
227
|
-
* └────►│ passthrough │────► Effect all Stream
|
|
228
|
-
* ┌────►│ │
|
|
229
|
-
* childProcess.stderr ────┤ └─────────────┘
|
|
230
|
-
* │ ┌─────────────┐
|
|
231
|
-
* └────►│ passthrough │────► Effect stderr Stream
|
|
232
|
-
* └─────────────┘
|
|
233
|
-
*/
|
|
234
208
|
const setupChildOutputStreams = (command, childProcess, stdoutConfig, stderrConfig) => {
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
const stdoutPassThrough = Predicate.isNotNull(nodeStdout) ? new NodeJSStream.PassThrough() : null;
|
|
242
|
-
const stderrPassThrough = Predicate.isNotNull(nodeStderr) ? new NodeJSStream.PassThrough() : null;
|
|
243
|
-
// Create PassThrough for combined output (.all)
|
|
244
|
-
const combinedPassThrough = new NodeJSStream.PassThrough();
|
|
245
|
-
// Track stream endings for the combined stream
|
|
246
|
-
const totalStreams = (Predicate.isNotNull(nodeStdout) ? 1 : 0) + (Predicate.isNotNull(nodeStderr) ? 1 : 0);
|
|
247
|
-
let endedCount = 0;
|
|
248
|
-
const onStreamEnd = () => {
|
|
249
|
-
endedCount++;
|
|
250
|
-
if (endedCount >= totalStreams) {
|
|
251
|
-
combinedPassThrough.end();
|
|
252
|
-
}
|
|
253
|
-
};
|
|
254
|
-
// Pipe stdout to both its own PassThrough and the combined PassThrough
|
|
255
|
-
if (Predicate.isNotNull(nodeStdout) && Predicate.isNotNull(stdoutPassThrough)) {
|
|
256
|
-
nodeStdout.pipe(stdoutPassThrough);
|
|
257
|
-
nodeStdout.pipe(combinedPassThrough, {
|
|
258
|
-
end: false
|
|
259
|
-
});
|
|
260
|
-
nodeStdout.once("end", onStreamEnd);
|
|
261
|
-
}
|
|
262
|
-
// Pipe stderr to both its own PassThrough and the combined PassThrough
|
|
263
|
-
if (Predicate.isNotNull(nodeStderr) && Predicate.isNotNull(stderrPassThrough)) {
|
|
264
|
-
nodeStderr.pipe(stderrPassThrough);
|
|
265
|
-
nodeStderr.pipe(combinedPassThrough, {
|
|
266
|
-
end: false
|
|
267
|
-
});
|
|
268
|
-
nodeStderr.once("end", onStreamEnd);
|
|
269
|
-
}
|
|
270
|
-
// Handle edge case: no streams available
|
|
271
|
-
if (totalStreams === 0) {
|
|
272
|
-
combinedPassThrough.end();
|
|
273
|
-
}
|
|
274
|
-
// Create Effect stream for stdout from its PassThrough
|
|
275
|
-
let stdout = Stream.empty;
|
|
276
|
-
if (Predicate.isNotNull(stdoutPassThrough)) {
|
|
277
|
-
stdout = NodeStream.fromReadable({
|
|
278
|
-
evaluate: () => stdoutPassThrough,
|
|
209
|
+
let stdout = childProcess.stdout ? (() => {
|
|
210
|
+
const passThrough = new PassThrough();
|
|
211
|
+
childProcess.stdout.on("error", error => passThrough.destroy(error));
|
|
212
|
+
childProcess.stdout.pipe(passThrough);
|
|
213
|
+
return NodeStream.fromReadable({
|
|
214
|
+
evaluate: () => passThrough,
|
|
279
215
|
onError: error => toPlatformError("fromReadable(stdout)", toError(error), command)
|
|
280
216
|
});
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
if (Predicate.isNotNull(stderrPassThrough)) {
|
|
289
|
-
stderr = NodeStream.fromReadable({
|
|
290
|
-
evaluate: () => stderrPassThrough,
|
|
217
|
+
})() : Stream.empty;
|
|
218
|
+
let stderr = childProcess.stderr ? (() => {
|
|
219
|
+
const passThrough = new PassThrough();
|
|
220
|
+
childProcess.stderr.on("error", error => passThrough.destroy(error));
|
|
221
|
+
childProcess.stderr.pipe(passThrough);
|
|
222
|
+
return NodeStream.fromReadable({
|
|
223
|
+
evaluate: () => passThrough,
|
|
291
224
|
onError: error => toPlatformError("fromReadable(stderr)", toError(error), command)
|
|
292
225
|
});
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
}
|
|
226
|
+
})() : Stream.empty;
|
|
227
|
+
if (Sink.isSink(stdoutConfig.stream)) {
|
|
228
|
+
stdout = Stream.transduce(stdout, stdoutConfig.stream);
|
|
297
229
|
}
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
});
|
|
230
|
+
if (Sink.isSink(stderrConfig.stream)) {
|
|
231
|
+
stderr = Stream.transduce(stderr, stderrConfig.stream);
|
|
232
|
+
}
|
|
233
|
+
const all = Stream.merge(stdout, stderr);
|
|
303
234
|
return {
|
|
304
235
|
stdout,
|
|
305
236
|
stderr,
|
|
@@ -341,6 +272,19 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
341
272
|
catch: error => toPlatformError("kill", toError(error), command)
|
|
342
273
|
});
|
|
343
274
|
};
|
|
275
|
+
const killProcessGroupOnExit = (childProcess, signal) => {
|
|
276
|
+
if (globalThis.process.platform === "win32") {
|
|
277
|
+
NodeChildProcess.exec(`taskkill /pid ${childProcess.pid} /T /F`, () => {
|
|
278
|
+
// ignore errors during best-effort cleanup
|
|
279
|
+
});
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
try {
|
|
283
|
+
globalThis.process.kill(-childProcess.pid, signal);
|
|
284
|
+
} catch {
|
|
285
|
+
// ignore errors during best-effort cleanup
|
|
286
|
+
}
|
|
287
|
+
};
|
|
344
288
|
const killProcess = (command, childProcess, signal) => Effect.suspend(() => {
|
|
345
289
|
const killed = childProcess.kill(signal);
|
|
346
290
|
if (!killed) {
|
|
@@ -353,7 +297,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
353
297
|
const killSignal = options?.killSignal ?? "SIGTERM";
|
|
354
298
|
return Predicate.isUndefined(options?.forceKillAfter) ? kill(command, childProcess, killSignal) : Effect.timeoutOrElse(kill(command, childProcess, killSignal), {
|
|
355
299
|
duration: options.forceKillAfter,
|
|
356
|
-
|
|
300
|
+
orElse: () => kill(command, childProcess, "SIGKILL")
|
|
357
301
|
});
|
|
358
302
|
};
|
|
359
303
|
/**
|
|
@@ -389,6 +333,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
389
333
|
const stdoutConfig = resolveOutputOption(cmd.options, "stdout");
|
|
390
334
|
const stderrConfig = resolveOutputOption(cmd.options, "stderr");
|
|
391
335
|
const resolvedAdditionalFds = resolveAdditionalFds(cmd.options);
|
|
336
|
+
let isReferenced = true;
|
|
392
337
|
const cwd = yield* resolveWorkingDirectory(cmd.options);
|
|
393
338
|
const env = resolveEnvironment(cmd.options);
|
|
394
339
|
const stdio = buildStdioArray(stdinConfig, stdoutConfig, stderrConfig, resolvedAdditionalFds);
|
|
@@ -410,10 +355,31 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
410
355
|
}
|
|
411
356
|
return yield* Effect.void;
|
|
412
357
|
}
|
|
358
|
+
if (!isReferenced) {
|
|
359
|
+
return yield* Effect.void;
|
|
360
|
+
}
|
|
413
361
|
// Process is still running, kill it
|
|
414
|
-
return yield* killWithTimeout((command, childProcess, signal) =>
|
|
362
|
+
return yield* killWithTimeout((command, childProcess, signal) => killProcessGroup(command, childProcess, signal).pipe(Effect.catch(() => killProcess(command, childProcess, signal)), Effect.andThen(Deferred.await(exitSignal)))).pipe(Effect.ignore);
|
|
415
363
|
}));
|
|
416
364
|
const pid = ProcessId(childProcess.pid);
|
|
365
|
+
childProcess.on("exit", code => {
|
|
366
|
+
if (code !== 0 && Predicate.isNotNull(code)) {
|
|
367
|
+
killProcessGroupOnExit(childProcess, cmd.options.killSignal ?? "SIGTERM");
|
|
368
|
+
}
|
|
369
|
+
});
|
|
370
|
+
const reref = Effect.sync(() => {
|
|
371
|
+
if (!isReferenced) {
|
|
372
|
+
childProcess.ref();
|
|
373
|
+
isReferenced = true;
|
|
374
|
+
}
|
|
375
|
+
});
|
|
376
|
+
const unref = Effect.sync(() => {
|
|
377
|
+
if (isReferenced) {
|
|
378
|
+
childProcess.unref();
|
|
379
|
+
isReferenced = false;
|
|
380
|
+
}
|
|
381
|
+
return reref;
|
|
382
|
+
});
|
|
417
383
|
const stdin = yield* setupChildStdin(cmd, childProcess, stdinConfig);
|
|
418
384
|
const {
|
|
419
385
|
all,
|
|
@@ -437,7 +403,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
437
403
|
});
|
|
438
404
|
const kill = options => {
|
|
439
405
|
const killWithTimeout = withTimeout(childProcess, cmd, options);
|
|
440
|
-
return killWithTimeout((command, childProcess, signal) =>
|
|
406
|
+
return killWithTimeout((command, childProcess, signal) => killProcessGroup(command, childProcess, signal).pipe(Effect.catch(() => killProcess(command, childProcess, signal)), Effect.andThen(Deferred.await(exitSignal)))).pipe(Effect.asVoid);
|
|
441
407
|
};
|
|
442
408
|
return makeHandle({
|
|
443
409
|
pid,
|
|
@@ -449,7 +415,8 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
449
415
|
stderr,
|
|
450
416
|
all,
|
|
451
417
|
getInputFd,
|
|
452
|
-
getOutputFd
|
|
418
|
+
getOutputFd,
|
|
419
|
+
unref
|
|
453
420
|
});
|
|
454
421
|
}
|
|
455
422
|
case "PipedCommand":
|
|
@@ -459,31 +426,31 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
459
426
|
pipeOptions
|
|
460
427
|
} = flattenCommand(cmd);
|
|
461
428
|
const [root, ...pipeline] = commands;
|
|
462
|
-
|
|
429
|
+
const handles = [yield* spawnCommand(root)];
|
|
463
430
|
for (let i = 0; i < pipeline.length; i++) {
|
|
464
431
|
const command = pipeline[i];
|
|
465
432
|
const options = pipeOptions[i] ?? {};
|
|
466
433
|
const stdinConfig = resolveStdinOption(command.options);
|
|
467
434
|
// Get the appropriate stream from the source based on `from` option
|
|
468
|
-
const sourceStream = Stream.unwrap(Effect.
|
|
435
|
+
const sourceStream = Stream.unwrap(Effect.succeed(getSourceStream(handles[handles.length - 1], options.from)));
|
|
469
436
|
// Determine where to pipe: stdin or custom fd
|
|
470
437
|
const toOption = options.to ?? "stdin";
|
|
471
438
|
if (toOption === "stdin") {
|
|
472
439
|
// Pipe to stdin (default behavior)
|
|
473
|
-
|
|
440
|
+
handles.push(yield* spawnCommand(ChildProcess.make(command.command, command.args, {
|
|
474
441
|
...command.options,
|
|
475
442
|
stdin: {
|
|
476
443
|
...stdinConfig,
|
|
477
444
|
stream: sourceStream
|
|
478
445
|
}
|
|
479
|
-
}));
|
|
446
|
+
})));
|
|
480
447
|
} else {
|
|
481
448
|
// Pipe to custom fd (fd3, fd4, etc.)
|
|
482
449
|
const fd = ChildProcess.parseFdName(toOption);
|
|
483
450
|
if (Predicate.isNotUndefined(fd)) {
|
|
484
451
|
const fdName = ChildProcess.fdName(fd);
|
|
485
452
|
const existingFds = command.options.additionalFds ?? {};
|
|
486
|
-
|
|
453
|
+
handles.push(yield* spawnCommand(ChildProcess.make(command.command, command.args, {
|
|
487
454
|
...command.options,
|
|
488
455
|
additionalFds: {
|
|
489
456
|
...existingFds,
|
|
@@ -492,40 +459,60 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
492
459
|
stream: sourceStream
|
|
493
460
|
}
|
|
494
461
|
}
|
|
495
|
-
}));
|
|
462
|
+
})));
|
|
496
463
|
} else {
|
|
497
464
|
// Invalid fd name, fall back to stdin
|
|
498
|
-
|
|
465
|
+
handles.push(yield* spawnCommand(ChildProcess.make(command.command, command.args, {
|
|
499
466
|
...command.options,
|
|
500
467
|
stdin: {
|
|
501
468
|
...stdinConfig,
|
|
502
469
|
stream: sourceStream
|
|
503
470
|
}
|
|
504
|
-
}));
|
|
471
|
+
})));
|
|
505
472
|
}
|
|
506
473
|
}
|
|
507
474
|
}
|
|
508
|
-
|
|
475
|
+
const handle = handles[handles.length - 1];
|
|
476
|
+
const unref = Effect.gen(function* () {
|
|
477
|
+
const rerefs = [];
|
|
478
|
+
for (const handle of handles) {
|
|
479
|
+
rerefs.push(yield* handle.unref);
|
|
480
|
+
}
|
|
481
|
+
return Effect.forEach([...rerefs].reverse(), reref => reref, {
|
|
482
|
+
discard: true
|
|
483
|
+
});
|
|
484
|
+
});
|
|
485
|
+
return makeHandle({
|
|
486
|
+
pid: handle.pid,
|
|
487
|
+
exitCode: handle.exitCode,
|
|
488
|
+
isRunning: handle.isRunning,
|
|
489
|
+
kill: handle.kill,
|
|
490
|
+
stdin: handle.stdin,
|
|
491
|
+
stdout: handle.stdout,
|
|
492
|
+
stderr: handle.stderr,
|
|
493
|
+
all: handle.all,
|
|
494
|
+
getInputFd: handle.getInputFd,
|
|
495
|
+
getOutputFd: handle.getOutputFd,
|
|
496
|
+
unref
|
|
497
|
+
});
|
|
509
498
|
}
|
|
510
499
|
}
|
|
511
500
|
});
|
|
512
|
-
return
|
|
513
|
-
spawn: spawnCommand
|
|
514
|
-
});
|
|
501
|
+
return makeSpawner(spawnCommand);
|
|
515
502
|
});
|
|
516
503
|
/**
|
|
517
|
-
* Layer
|
|
504
|
+
* Layer that provides the `NodeChildProcessSpawner` implementation.
|
|
518
505
|
*
|
|
506
|
+
* @category layers
|
|
519
507
|
* @since 4.0.0
|
|
520
|
-
* @category Layers
|
|
521
508
|
*/
|
|
522
509
|
export const layer = /*#__PURE__*/Layer.effect(ChildProcessSpawner, make);
|
|
523
510
|
/**
|
|
524
511
|
* Flattens a `Command` into an array of `StandardCommand`s along with pipe
|
|
525
512
|
* options for each connection.
|
|
526
513
|
*
|
|
514
|
+
* @category transforming
|
|
527
515
|
* @since 4.0.0
|
|
528
|
-
* @category Utilities
|
|
529
516
|
*/
|
|
530
517
|
export const flattenCommand = command => {
|
|
531
518
|
const commands = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeChildProcessSpawner.js","names":["Deferred","Effect","Exit","FileSystem","Layer","Path","Predicate","Sink","Stream","ChildProcess","ChildProcessSpawner","ExitCode","makeHandle","ProcessId","NodeChildProcess","NodeJSStream","handleErrnoException","NodeSink","NodeStream","toError","error","globalThis","Error","String","toPlatformError","method","command","commands","flattenCommand","commandStr","reduce","acc","curr","cmd","args","join","length","make","gen","fs","path","resolveWorkingDirectory","fnUntraced","options","isUndefined","cwd","undefined","access","resolve","resolveEnvironment","extendEnv","process","env","inputToStdioOption","input","isStream","outputToStdioOption","isSink","resolveStdinOption","defaultConfig","stream","encoding","endOnDone","stdin","resolveOutputOption","streamName","option","resolveAdditionalFds","additionalFds","result","name","config","Object","entries","fd","parseFdName","isNotUndefined","push","sort","a","b","buildStdioArray","stdinConfig","stdoutConfig","stderrConfig","stdio","maxFd","max","Math","i","setupAdditionalFds","childProcess","getInputFd","drain","getOutputFd","empty","inputSinks","Map","outputStreams","nodeStream","type","sink","isNotNullish","fromWritable","evaluate","onError","forkScoped","run","set","isNotNull","fromReadable","transduce","get","setupChildStdin","suspend","as","succeed","setupChildOutputStreams","nodeStdout","stdout","nodeStderr","stderr","stdoutPassThrough","PassThrough","stderrPassThrough","combinedPassThrough","totalStreams","endedCount","onStreamEnd","end","pipe","once","all","spawn","spawnOptions","callback","resume","deferred","makeUnsafe","handle","on","fail","doneUnsafe","sync","kill","killProcessGroup","signal","platform","exec","pid","void","try","catch","killProcess","killed","withTimeout","killSignal","forceKillAfter","timeoutOrElse","duration","onTimeout","getSourceStream","from","fromOption","spawnCommand","_tag","resolvedAdditionalFds","exitSignal","acquireRelease","detached","shell","exited","isDone","killWithTimeout","code","await","ignore","andThen","isRunning","map","done","exitCode","flatMap","asVoid","pipeOptions","root","pipeline","sourceStream","unwrap","h","toOption","to","fdName","existingFds","of","layer","effect","flatten","left","right","first","rest","nonEmptyCommands"],"sources":["../src/NodeChildProcessSpawner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"NodeChildProcessSpawner.js","names":["Deferred","Effect","Exit","FileSystem","Layer","Path","Predicate","Sink","Stream","ChildProcess","ChildProcessSpawner","ExitCode","make","makeSpawner","makeHandle","ProcessId","NodeChildProcess","PassThrough","handleErrnoException","NodeSink","NodeStream","toError","error","globalThis","Error","String","toPlatformError","method","command","commands","flattenCommand","commandStr","reduce","acc","curr","cmd","args","join","length","gen","fs","path","resolveWorkingDirectory","fnUntraced","options","isUndefined","cwd","undefined","access","resolve","resolveEnvironment","extendEnv","process","env","inputToStdioOption","input","isStream","outputToStdioOption","isSink","resolveStdinOption","defaultConfig","stream","encoding","endOnDone","stdin","resolveOutputOption","streamName","option","resolveAdditionalFds","additionalFds","result","name","config","Object","entries","fd","parseFdName","isNotUndefined","push","sort","a","b","buildStdioArray","stdinConfig","stdoutConfig","stderrConfig","stdio","maxFd","max","Math","i","setupAdditionalFds","childProcess","getInputFd","drain","getOutputFd","empty","inputSinks","Map","outputStreams","nodeStream","type","sink","fromWritable","evaluate","onError","forkScoped","run","set","passThrough","on","destroy","pipe","fromReadable","transduce","get","setupChildStdin","suspend","isNotNull","as","succeed","setupChildOutputStreams","stdout","stderr","all","merge","spawn","spawnOptions","callback","resume","deferred","makeUnsafe","handle","fail","doneUnsafe","sync","kill","killProcessGroup","signal","platform","exec","pid","void","try","catch","killProcessGroupOnExit","killProcess","killed","withTimeout","killSignal","forceKillAfter","timeoutOrElse","duration","orElse","getSourceStream","from","fromOption","spawnCommand","_tag","resolvedAdditionalFds","isReferenced","exitSignal","acquireRelease","detached","shell","exited","isDone","killWithTimeout","code","await","ignore","andThen","reref","ref","unref","isRunning","map","done","exitCode","flatMap","asVoid","pipeOptions","root","pipeline","handles","sourceStream","unwrap","toOption","to","fdName","existingFds","rerefs","forEach","reverse","discard","layer","effect","flatten","left","right","first","rest","nonEmptyCommands"],"sources":["../src/NodeChildProcessSpawner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -4,13 +4,19 @@ import * as ShardingConfig from "effect/unstable/cluster/ShardingConfig";
|
|
|
4
4
|
import * as RpcSerialization from "effect/unstable/rpc/RpcSerialization";
|
|
5
5
|
import type * as SocketServer from "effect/unstable/socket/SocketServer";
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* Provides the cluster `RpcClientProtocol` by opening TCP sockets to runner
|
|
8
|
+
* addresses and using the current RPC serialization service.
|
|
9
|
+
*
|
|
10
|
+
* @category layers
|
|
11
|
+
* @since 4.0.0
|
|
9
12
|
*/
|
|
10
13
|
export declare const layerClientProtocol: Layer.Layer<Runners.RpcClientProtocol, never, RpcSerialization.RpcSerialization>;
|
|
11
14
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
15
|
+
* Provides the socket server used by cluster runners, listening on
|
|
16
|
+
* `ShardingConfig.runnerListenAddress` or `runnerAddress`.
|
|
17
|
+
*
|
|
18
|
+
* @category layers
|
|
19
|
+
* @since 4.0.0
|
|
14
20
|
*/
|
|
15
21
|
export declare const layerSocketServer: Layer.Layer<SocketServer.SocketServer, SocketServer.SocketServerError, ShardingConfig.ShardingConfig>;
|
|
16
22
|
//# sourceMappingURL=NodeClusterSocket.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeClusterSocket.d.ts","sourceRoot":"","sources":["../src/NodeClusterSocket.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NodeClusterSocket.d.ts","sourceRoot":"","sources":["../src/NodeClusterSocket.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAA;AAC1D,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAExE,OAAO,KAAK,gBAAgB,MAAM,sCAAsC,CAAA;AAExE,OAAO,KAAK,KAAK,YAAY,MAAM,qCAAqC,CAAA;AAIxE;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAC3C,OAAO,CAAC,iBAAiB,EACzB,KAAK,EACL,gBAAgB,CAAC,gBAAgB,CAiBlC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,KAAK,CACzC,YAAY,CAAC,YAAY,EACzB,YAAY,CAAC,iBAAiB,EAC9B,cAAc,CAAC,cAAc,CAQV,CAAA"}
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Node TCP socket transport for Effect Cluster runner-to-runner RPC.
|
|
3
|
+
*
|
|
4
|
+
* This module provides the shared Node layers used by socket-based cluster
|
|
5
|
+
* transports. `layerClientProtocol` opens TCP sockets to peer runner addresses
|
|
6
|
+
* and wraps them in the current RPC serialization protocol. `layerSocketServer`
|
|
7
|
+
* exposes the socket server that receives incoming runner RPC traffic.
|
|
8
|
+
*
|
|
9
|
+
* @since 4.0.0
|
|
3
10
|
*/
|
|
4
11
|
import * as Effect from "effect/Effect";
|
|
5
12
|
import * as Layer from "effect/Layer";
|
|
13
|
+
import * as Option from "effect/Option";
|
|
6
14
|
import * as Runners from "effect/unstable/cluster/Runners";
|
|
7
15
|
import * as ShardingConfig from "effect/unstable/cluster/ShardingConfig";
|
|
8
16
|
import * as RpcClient from "effect/unstable/rpc/RpcClient";
|
|
@@ -11,8 +19,11 @@ import { Socket } from "effect/unstable/socket/Socket";
|
|
|
11
19
|
import * as NodeSocket from "./NodeSocket.js";
|
|
12
20
|
import * as NodeSocketServer from "./NodeSocketServer.js";
|
|
13
21
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
22
|
+
* Provides the cluster `RpcClientProtocol` by opening TCP sockets to runner
|
|
23
|
+
* addresses and using the current RPC serialization service.
|
|
24
|
+
*
|
|
25
|
+
* @category layers
|
|
26
|
+
* @since 4.0.0
|
|
16
27
|
*/
|
|
17
28
|
export const layerClientProtocol = /*#__PURE__*/Layer.effect(Runners.RpcClientProtocol)(/*#__PURE__*/Effect.gen(function* () {
|
|
18
29
|
const serialization = yield* RpcSerialization.RpcSerialization;
|
|
@@ -27,15 +38,18 @@ export const layerClientProtocol = /*#__PURE__*/Layer.effect(Runners.RpcClientPr
|
|
|
27
38
|
}, Effect.orDie);
|
|
28
39
|
}));
|
|
29
40
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
41
|
+
* Provides the socket server used by cluster runners, listening on
|
|
42
|
+
* `ShardingConfig.runnerListenAddress` or `runnerAddress`.
|
|
43
|
+
*
|
|
44
|
+
* @category layers
|
|
45
|
+
* @since 4.0.0
|
|
32
46
|
*/
|
|
33
47
|
export const layerSocketServer = /*#__PURE__*/Effect.gen(function* () {
|
|
34
48
|
const config = yield* ShardingConfig.ShardingConfig;
|
|
35
|
-
const listenAddress = config.runnerListenAddress
|
|
36
|
-
if (listenAddress
|
|
49
|
+
const listenAddress = Option.orElse(config.runnerListenAddress, () => config.runnerAddress);
|
|
50
|
+
if (Option.isNone(listenAddress)) {
|
|
37
51
|
return yield* Effect.die("layerSocketServer: ShardingConfig.runnerListenAddress is None");
|
|
38
52
|
}
|
|
39
|
-
return NodeSocketServer.layer(listenAddress);
|
|
53
|
+
return NodeSocketServer.layer(listenAddress.value);
|
|
40
54
|
}).pipe(Layer.unwrap);
|
|
41
55
|
//# sourceMappingURL=NodeClusterSocket.js.map
|