A set of Promise-based methods around child_process.spawn
npm install @futagoza/child-process


> This library is developed for use with Node 10+ and may (or may not) work with versions of Node lower then this.
A custom async-focused variant of Node's built-in child-process module, based exclusively around child_process.spawn()
All the spawning methods accept the same arguments as child_process.spawn(), but in any order.
If an array argument isn't provided, it will try options.args or options.argv; failing that, the string argument (or options.command or options.file) will be split (by default " " is used, but that can be changed using options.ws), and all but the first element will be used as the argv argument, setting the first element as the new command argument.
``js
const cp = require( "@futagoza/child-process" );
// Spawns a new process.
cp.spawn( command, argv?, options? )
// Spawns a shell, executing the command inside the shell and buffering any generated output.
cp.exec( command, argv?, options? )
// Same as cp.exec, but sends any output to the current process instead.
cp.run( command, argv?, options? )
// Confirm if the given error was thrown from a spawn'ed process.
cp.isSpawnError( object? )
// All arguments are optional, apart from the command, which can be passed as thecommand
// first argument or as an option (either or file)`
cp.spawn( "npm", [ "publish", "--access", "public" ] );
cp.spawn( "npm", { args: [ "publish", "--access", "public" ] } );
cp.spawn( "npm publish --access public" );
cp.spawn( { command: "npm publish --access public" } );
In addition to the options used by child_process.spawn(), the following options are also supported:
| option | description |
| ---------- | ----------- |
| args | Alternative to passing an array as argv argument (using _options.argv_ is preferred) |
| argv | Alternative to passing an array as argv argument |
| buffer1 | On _options.pipe_ this will buffer the results from both stdout and stderr |stdin
| command | Alternative to passing the command as a string argument |
| encoding1 | Used alongside _options.buffer_, this specifies the character encoding used to decode the results |
| file | Alternative to passing the command as a string argument |
| ignore2 | Will set _options.stdio_ to __ignore__ |
| inherit2 | Will set _options.stdio_ to __inherit__3 |
| input | passed to the child process's |
| pipe2 | Will set _options.stdio_ to __pipe__4 |
| ready | A function that will be called with the child process as it's argument once the promise has started waiting |
| silent2 | Will set _options.stdio_ to __pipe__ |
| ws | If there were no _args_ found, then this is used to split the _command_ string and extract the _args_ |
1. The _buffer_ option is only used in cp.spawn _(optional)_ and cp.exec _(fixed)_cp.run
2. Is ignored if the _stdio_ option is already set
3. The fixed option for _stdio_ with cp.exec
4. The fixed option for _stdio_ with , and the default for it on cp.spawn`
Copyright (c) 2018+ Futago-za Ryuu
The MIT License, http://opensource.org/licenses/MIT