c5fd23b54f | ||
---|---|---|
.. | ||
build | ||
LICENSE | ||
README.md | ||
package.json |
README.md
spawn-async
A cross-platform version of Node's child_process.spawn
as an async function that returns a promise.
Usage:
import spawnAsync from '@expo/spawn-async';
(async function () {
let resultPromise = spawnAsync('echo', ['hello', 'world']);
let spawnedChildProcess = resultPromise.child;
try {
let {
pid,
output: [stdout, stderr],
stdout,
stderr,
status,
signal,
} = await resultPromise;
} catch (e) {
console.error(e.stack);
// The error object also has the same properties as the result object
}
})();
API
spawnAsync
takes the same arguments as child_process.spawn
.
It returns a promise whose result is an object with these properties:
pid
: the process ID of the spawned child processoutput
: an array with stdout and stderr's outputstdout
: a string of what the child process wrote to stdoutstderr
: a string of what the child process wrote to stderrstatus
: the exit code of the child processsignal
: the signal (ex:SIGTERM
) used to stop the child process if it did not exit on its own
If there's an error running the child process or it exits with a non-zero status code, spawnAsync
rejects the returned promise. The Error object also has the properties listed above.