1.1.1 • Published 9 years ago
async-child-process v1.1.1
async-child-process
A simple Promise-based API for working with ChildProcesses.
Usage
npm install --save async-child-processjoin(child: ChildProcess): Promise<Result>
Waits for child to exit.
Returns a Promise that:
- will resolve
{code: 0}ifchildexits with code 0 - with reject with an error otherwise
error.codewill be the exit code if the child exited normallyerror.signalwill be the signal the child was terminated with, if any- Note: if
childemits anerror, it may be the rejection reason and it may not havecodeorsignal
Example:
import {exec} from 'child_process'
import {join} from 'async-child-process'
async function test() {
await join(exec('echo hello world'))
}kill(child: ChildProcess, signal?: string): Promise<void>
Sends a signal to child and waits for it to exit.
Returns a Promise that:
- will resolve once
childis killed - will reject with an
errorifchildemits one
Example:
import {exec} from 'child_process'
import {kill} from 'async-child-process'
async function test() {
const child = exec(`node -e 'setTimeout(() => console.log("finally!"), 1e11)'`)
await kill(child)
}childPrinted(child: ChildProcess, predicate: (output: string) => boolean | RegExp, stream?: 'stdout' | 'stderr'): Promise<string>
Waits for child to print something to its stdout and/or stderr. Returns a promise that:
- will resolve with the message that matched
predicateor - will reject if
childexited or errored before printing a message that matchedpredicate
Arguments:
- child: the
ChildProcessto listen to - predicate:
childPrintedwill wait untilchild's stream(s) output a message matching the predicate - stream: which of
child's streams to listen to, omit to listen to bothstdoutandstderr
Example:
import {exec} from 'child_process'
import {childPrinted} from 'async-child-process'
async function test() {
const child = exec(`webpack --config webpack.config.dev.js`)
await childPrinted(child, /webpack built in \d+ ms/)
}execAsync(command: string, options?: Object): Promise<Result>
Like exec, but returns a Promise that:
- will resolve with
{stdout: string, stderr: string}from runningcommandif it exited with code 0 - will reject with an error otherwise
error.codewill be the exit code if the child exited normallyerror.signalwill be the signal the child was terminated with, if any- Note: if
childemits anerror, it may be the rejection reason and it may not havecodeorsignal
Example:
import {execAsync} from 'async-child-process'
async function test() {
const {stdout} = await execAsync('docker-compose port webapp 80')
const testUrl = stdout.trim()
}