ispawn v0.2.0
ispawn 
Spawn a process to inspect it.
Installation
npm install ispawnAPI
createSpawn
Configures a process to be spawned but doesn't spawn it yet
Parameters
$0Objects options (same as @seespawn)
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)
}Parameters
$0Object options$0.execArgvArray<String>? arguments passed to Node.js/V8 directly (not to your app) (optional, default[])$0.argvArray<String> file to run followed by flags to pass to your app$0.nodeString? path to Node.js executable (optional, defaultprocess.execPath)$0.spawnOptsObject? options passed tochild_process.spawn(optional, default{})$0.onStdoutFunction? function to call with each line written to stdout (optional, defaultnull)$0.onStderrFunction? function to call with each line written to stderr (optional, defaultnull)
Returns Object with the following properties- termination: {Promise} that resolves when process exits
- proc: the spawned process
Kudos
Lots of the ideas and code were extracted from the 0x tool.
License
MIT