Skip to main content

shell.Command

The entry point for spawning child processes. It emits the close and error events.

example

const command = new Command('node')
command.on('close', data => {
  console.log(`command finished with code ${data.code} and signal ${data.signal}`)
})
command.on('error', error => console.error(`command error: "${error}"`))
command.stdout.on('data', line => console.log(`command stdout: "${line}"`))
command.stderr.on('data', line => console.log(`command stderr: "${line}"`))

const child = await command.spawn()
console.log('pid:', child.pid)

Hierarchy#

  • EventEmitter<close | error>

    Command

Constructors#

constructor#

+ new Command(program: string, args?: string | string[], options?: SpawnOptions): Command

Creates a new Command instance.

Parameters:#

NameTypeDefault valueDescription
programstring-The program to execute.
argsstring | string[][]Program arguments.
options?SpawnOptions-Spawn options.

Returns: Command

Overrides: EventEmitter<'close' | 'error'>.constructor

Defined in: shell.ts:189

Properties#

stderr#

Readonly stderr: EventEmitter<data>

Event emitter for the stderr. Emits the data event.

Defined in: shell.ts:189


stdout#

Readonly stdout: EventEmitter<data>

Event emitter for the stdout. Emits the data event.

Defined in: shell.ts:187

Methods#

execute#

execute(): Promise<ChildProcess>

Executes the command as a child process, waiting for it to finish and collecting all of its output.

example

const output = await new Command('echo', 'message').execute()
assert(output.code === 0)
assert(output.signal === null)
assert(output.stdout === 'message')
assert(output.stderr === '')

Returns: Promise<ChildProcess>

A promise resolving to the child process output.

Defined in: shell.ts:274


on#

on(event: close | error, handler: (arg: any) => void): EventEmitter<close | error>

Listen to an event from the child process.

Parameters:#

NameTypeDescription
eventclose | errorThe event name.
handler(arg: any) => voidThe event handler.

Returns: EventEmitter<close | error>

The this instance for chained calls.

Inherited from: EventEmitter.on

Defined in: shell.ts:107


spawn#

spawn(): Promise<Child>

Executes the command as a child process, returning a handle to it.

Returns: Promise<Child>

A promise resolving to the child process handle.

Defined in: shell.ts:237


sidecar#

Staticsidecar(program: string, args?: string | string[], options?: SpawnOptions): Command

Creates a command to execute the given sidecar program.

example

const command = Command.sidecar('my-sidecar')
const output = await command.execute()

Parameters:#

NameTypeDefault valueDescription
programstring-The program to execute.
argsstring | string[][]Program arguments.
options?SpawnOptions-Spawn options.

Returns: Command

Defined in: shell.ts:222