createSpawn

Configures a process to be spawned but doesn't spawn it yet

createSpawn
Parameters
$0 (Objects) options (same as @see spawn )
Returns
Spawner: that will spawn the configured process via spawner.spawn

spawn

Spawns a process with the given options allowing to intercept stdout and stderr output of the application itself or the underlying process, i.e. V8 and Node.js messages.

onStdout and onStderr interceptors

The functions, onStdout, onStderr called with each line written to the respective file descriptor have the following signature:

onStdout(line:String, fromApp:Boolean) where fromApp is true when the line came from the app itself and false when it came from the underlying runtime, i.e. Node.js or V8 when flags triggered diagnostics output.

To mark a line as handled return true from the function and it will not be printed to the console.

Example

 function onStdout(line, fromApp) {
   // Don't intercept app output, just have it printed as usual
   if (fromApp) return false
   // Do something with diagnositics messages here ...

   return true
 }
 const { termination } = spawn({
     execArgv: [ '--trace-turbo-inlining' ]
   , argv: [ require.resolve('./bind.js') ]
   , onStdout
 })

 try {
   const code = await termination
   console.log('The app returned with code', code)
 } catch (err) {
   console.error(err)
 }

full example

spawn
Parameters
$0 (Object) options
Name Description
$0.execArgv Array<String>? (default []) arguments passed to Node.js/V8 directly (not to your app)
$0.argv Array<String> file to run followed by flags to pass to your app
$0.node String? (default process.execPath) path to Node.js executable
$0.spawnOpts Object? (default {}) options passed to child_process.spawn
$0.onStdout Function? (default null) function to call with each line written to stdout
$0.onStderr Function? (default null) function to call with each line written to stderr
Returns
Object: with the following properties
  • termination: {Promise} that resolves when process exits
  • proc: the spawned process