@futagoza/child-process
v1.1.0
Published
A set of Promise-based methods around child_process.spawn
Downloads
923
Maintainers
Readme
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.
example
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 the
// first argument or as an option (either `command` 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" } );
options
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
|
| 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 inherit3 |
| input | passed to the child process's stdin
|
| pipe2 | Will set options.stdio to pipe4 |
| 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 |
- The buffer option is only used in
cp.spawn
(optional) andcp.exec
(fixed) - Is ignored if the stdio option is already set
- The fixed option for stdio with
cp.run
- The fixed option for stdio with
cp.exec
, and the default for it oncp.spawn
license
Copyright (c) 2018+ Futago-za Ryuu The MIT License, http://opensource.org/licenses/MIT