@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.
Files changed (70) hide show
  1. package/README.md +3 -3
  2. package/dist/NodeChildProcessSpawner.d.ts +19 -5
  3. package/dist/NodeChildProcessSpawner.d.ts.map +1 -1
  4. package/dist/NodeChildProcessSpawner.js +105 -118
  5. package/dist/NodeChildProcessSpawner.js.map +1 -1
  6. package/dist/NodeClusterSocket.d.ts +10 -4
  7. package/dist/NodeClusterSocket.d.ts.map +1 -1
  8. package/dist/NodeClusterSocket.js +22 -8
  9. package/dist/NodeClusterSocket.js.map +1 -1
  10. package/dist/NodeCrypto.d.ts +27 -0
  11. package/dist/NodeCrypto.d.ts.map +1 -0
  12. package/dist/NodeCrypto.js +55 -0
  13. package/dist/NodeCrypto.js.map +1 -0
  14. package/dist/NodeFileSystem.d.ts +5 -2
  15. package/dist/NodeFileSystem.d.ts.map +1 -1
  16. package/dist/NodeFileSystem.js +44 -28
  17. package/dist/NodeFileSystem.js.map +1 -1
  18. package/dist/NodePath.d.ts +15 -6
  19. package/dist/NodePath.d.ts.map +1 -1
  20. package/dist/NodePath.js +23 -7
  21. package/dist/NodePath.js.map +1 -1
  22. package/dist/NodeRuntime.d.ts +26 -7
  23. package/dist/NodeRuntime.d.ts.map +1 -1
  24. package/dist/NodeRuntime.js +8 -8
  25. package/dist/NodeRuntime.js.map +1 -1
  26. package/dist/NodeSink.d.ts +33 -4
  27. package/dist/NodeSink.d.ts.map +1 -1
  28. package/dist/NodeSink.js +31 -4
  29. package/dist/NodeSink.js.map +1 -1
  30. package/dist/NodeSocket.d.ts +43 -12
  31. package/dist/NodeSocket.d.ts.map +1 -1
  32. package/dist/NodeSocket.js +41 -17
  33. package/dist/NodeSocket.js.map +1 -1
  34. package/dist/NodeSocketServer.d.ts +25 -8
  35. package/dist/NodeSocketServer.d.ts.map +1 -1
  36. package/dist/NodeSocketServer.js +29 -12
  37. package/dist/NodeSocketServer.js.map +1 -1
  38. package/dist/NodeStdio.d.ts +6 -5
  39. package/dist/NodeStdio.d.ts.map +1 -1
  40. package/dist/NodeStdio.js +26 -10
  41. package/dist/NodeStdio.js.map +1 -1
  42. package/dist/NodeStream.d.ts +76 -20
  43. package/dist/NodeStream.d.ts.map +1 -1
  44. package/dist/NodeStream.js +74 -25
  45. package/dist/NodeStream.js.map +1 -1
  46. package/dist/NodeTerminal.d.ts +9 -2
  47. package/dist/NodeTerminal.d.ts.map +1 -1
  48. package/dist/NodeTerminal.js +13 -3
  49. package/dist/NodeTerminal.js.map +1 -1
  50. package/dist/index.d.ts +52 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +53 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/internal/utils.js +1 -1
  55. package/dist/internal/utils.js.map +1 -1
  56. package/package.json +9 -9
  57. package/src/NodeChildProcessSpawner.ts +157 -148
  58. package/src/NodeClusterSocket.ts +22 -8
  59. package/src/NodeCrypto.ts +60 -0
  60. package/src/NodeFileSystem.ts +58 -30
  61. package/src/NodePath.ts +23 -7
  62. package/src/NodeRuntime.ts +28 -13
  63. package/src/NodeSink.ts +40 -4
  64. package/src/NodeSocket.ts +51 -20
  65. package/src/NodeSocketServer.ts +39 -13
  66. package/src/NodeStdio.ts +42 -24
  67. package/src/NodeStream.ts +97 -33
  68. package/src/NodeTerminal.ts +22 -4
  69. package/src/index.ts +65 -0
  70. 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-specific implementations for the abstractions defined in [`@effect/platform`](https://github.com/Effect-TS/effect/tree/main/packages/platform), allowing you to write platform-independent code that integrates smoothly with 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 `ChildProcessSpawner`.
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 providing the `NodeChildProcessSpawner` implementation.
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;;;;GAIG;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,EAAE,mBAAmB,EAAmC,MAAM,6CAA6C,CAAA;AA6mBlH;;;;;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,GACzB,SAAS,YAAY,CAAC,OAAO,KAC5B,iBAoCF,CAAA"}
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 * as NodeJSStream from "node:stream";
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 (Predicate.isNotNullish(nodeStream) && "write" in nodeStream) {
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 (Predicate.isNotUndefined(config.stream)) {
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 (Predicate.isNotNull(nodeStream) && Predicate.isNotUndefined(nodeStream) && "read" in nodeStream) {
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: () => nodeStream,
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 (Predicate.isNotUndefined(config.sink)) {
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
- const nodeStdout = childProcess.stdout;
236
- const nodeStderr = childProcess.stderr;
237
- // Create PassThrough streams for individual access to stdout and stderr.
238
- // We pipe the original Node.js streams to these PassThroughs so that
239
- // the data can be consumed by both the individual streams AND the
240
- // combined stream (.all) simultaneously.
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
- // Apply user-provided Sink if configured
282
- if (Sink.isSink(stdoutConfig.stream)) {
283
- stdout = Stream.transduce(stdout, stdoutConfig.stream);
284
- }
285
- }
286
- // Create Effect stream for stderr from its PassThrough
287
- let stderr = Stream.empty;
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
- // Apply user-provided Sink if configured
294
- if (Sink.isSink(stderrConfig.stream)) {
295
- stderr = Stream.transduce(stderr, stderrConfig.stream);
296
- }
226
+ })() : Stream.empty;
227
+ if (Sink.isSink(stdoutConfig.stream)) {
228
+ stdout = Stream.transduce(stdout, stdoutConfig.stream);
297
229
  }
298
- // Create Effect stream for combined output from the combined PassThrough
299
- const all = NodeStream.fromReadable({
300
- evaluate: () => combinedPassThrough,
301
- onError: error => toPlatformError("fromReadable(all)", toError(error), command)
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
- onTimeout: () => kill(command, childProcess, "SIGKILL")
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) => Effect.catch(killProcessGroup(command, childProcess, signal), () => killProcess(command, childProcess, signal))).pipe(Effect.andThen(Deferred.await(exitSignal)), Effect.ignore);
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) => Effect.catch(killProcessGroup(command, childProcess, signal), () => killProcess(command, childProcess, signal))).pipe(Effect.andThen(Deferred.await(exitSignal)), Effect.asVoid);
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
- let handle = spawnCommand(root);
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.map(handle, h => getSourceStream(h, options.from)));
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
- handle = spawnCommand(ChildProcess.make(command.command, command.args, {
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
- handle = spawnCommand(ChildProcess.make(command.command, command.args, {
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
- handle = spawnCommand(ChildProcess.make(command.command, command.args, {
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
- return yield* handle;
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 ChildProcessSpawner.of({
513
- spawn: spawnCommand
514
- });
501
+ return makeSpawner(spawnCommand);
515
502
  });
516
503
  /**
517
- * Layer providing the `NodeChildProcessSpawner` implementation.
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
- * @since 1.0.0
8
- * @category Layers
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
- * @since 1.0.0
13
- * @category Layers
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":"AAIA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,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;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAC3C,OAAO,CAAC,iBAAiB,EACzB,KAAK,EACL,gBAAgB,CAAC,gBAAgB,CAiBlC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,KAAK,CACzC,YAAY,CAAC,YAAY,EACzB,YAAY,CAAC,iBAAiB,EAC9B,cAAc,CAAC,cAAc,CAQV,CAAA"}
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
- * @since 1.0.0
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
- * @since 1.0.0
15
- * @category Layers
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
- * @since 1.0.0
31
- * @category Layers
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 ?? config.runnerAddress;
36
- if (listenAddress === undefined) {
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