spawn-stack
Spawn a new process using stack
command with the given arguments
const spawnStack = require('spawn-stack');
spawnStack(['--version']).then(result => {
result.output;
});
Installation
Make sure stack
command is installed in your $PATH
, then install spawn-stack
via npm CLI.
npm install spawn-stack
API
const spawnStack = require('spawn-stack');
spawnStack(args [, options])
args: Array<string>
(command line arguments passed to stack
command)
options: Object
(execa
options, with preferLocal
defaulting to false
)
Return: ChildProcess
It returns the same value as execa
's:
a child_process
instance, which is enhanced to also be a Promise
for a result Object
with stdout
and stderr
properties.
On POSIX, --allow-different-user
flag will be automatically enabled to prevent file permission problems, unless --no-allow-different-user
flag is explicitly provided.
process.platform !== 'win32';
spawnStack(['--numeric-version']).then(result => {
result.cmd;
});
spawnStack(['--no-allow-different-user', '--numeric-version']).then(result => {
result.cmd;
});
The return value also has Symbol.observable
method that returns a zen-observable instance passing each line of stderr
to its Subscription
. That means you can convert the return value into an Observable
by using Observable.from
.
const Observable = require('zen-observable');
const spawnStack = require('spawn-stack');
const cp = spawnStack(['setup', '8.2.1']);
Observable.from(cp).subscribe({
next(line) {
console.log(line);
},
complete() {
console.log('Done.')
}
});
License
ISC License © 2017 Shinnosuke Watanabe