child-process-ext
Installation
npm install child-process-ext
API
spawn(command[, args[, options]])
Cross system compliant spawn
(backed by cross-spawn
).
Works exactly same way as node's spawn
with difference that promise is returned that resolves once process exits.
Following properties are exposed on return promise:
child
- child process
stdout
- stdout stream (decorated so it can also be used as promise)
stderr
- stderr stream (decorated so it can also be used as promise)
std
- Merged stdout & stderr stream (decorated so it can also be used as promise)
stdoutBuffer
- Buffer that exposes so far written stdout
stderrBuffer
- Buffer that exposes so far written stderrr
stdBuffer
- Buffer that exposes so far written std
Promise resolves with object with three properties:
code
- Exit code of a child proces
signal
- Signal that terminated the process
stdoutBuffer
- Buffer containing gathered stdout
content
stderrBuffer
- Buffer containing gathered stderr
content
stdBuffer
- Buffer containing gathered stderr
content
If process exits with non zero code, then promise is rejected with an error exposing same properties as above
Non standard options
split bool
(default: false
)
Whether stdout data should be split by lines. If set to true
, then stdout
and stderr
on promise expose mappers of original stdout
and stderr
that emit each line with distinct data
event
shouldCloseStdin bool
(default: false
)
Whether stdin should be closed. Applicable for spawned processes where stdin
is set to other than 'inherit'
mode, and underlying processes is reading from stdin
. Not providing any stdin
output, may produce stall if process logic waits for an input.
See: get-stdin#13 for more information
Tests
npm test