MCPcopy Create free account
hub / github.com/Effect-TS/effect / spawn

Function spawn

packages/platform/node-shared/src/NodeChildProcessSpawner.ts:334–360  ·  view source on GitHub ↗
(
    command: ChildProcess.StandardCommand,
    spawnOptions: NodeChildProcess.SpawnOptions
  )

Source from the content-addressed store, hash-verified

332 }
333
334 const spawn = (
335 command: ChildProcess.StandardCommand,
336 spawnOptions: NodeChildProcess.SpawnOptions
337 ) =>
338 Effect.callback<
339 readonly [NodeChildProcess.ChildProcess, ExitSignal],
340 PlatformError.PlatformError
341 >((resume) => {
342 const deferred = Deferred.makeUnsafe<ExitCodeWithSignal>()
343 const handle = NodeChildProcess.spawn(
344 command.command,
345 command.args,
346 spawnOptions
347 )
348 handle.on("error", (error) => {
349 resume(Effect.fail(toPlatformError("spawn", error, command)))
350 })
351 handle.on("exit", (...args) => {
352 Deferred.doneUnsafe(deferred, Exit.succeed(args))
353 })
354 handle.on("spawn", () => {
355 resume(Effect.succeed([handle, deferred]))
356 })
357 return Effect.sync(() => {
358 handle.kill("SIGTERM")
359 })
360 })
361
362 const killProcessGroup = (
363 command: ChildProcess.StandardCommand,

Callers 2

assertOpenResultFunction · 0.50

Calls 6

toPlatformErrorFunction · 0.70
onMethod · 0.65
resumeFunction · 0.50
failMethod · 0.45
succeedMethod · 0.45
syncMethod · 0.45

Tested by 1

assertOpenResultFunction · 0.40