ChildProcess.prototype.stdio - Node documentation
property ChildProcess.prototype.stdio

Usage in Deno

import { ChildProcess } from "node:child_process";

A sparse array of pipes to the child process, corresponding with positions in the stdio option passed to spawn that have been set to the value 'pipe'. subprocess.stdio[0], subprocess.stdio[1], andsubprocess.stdio[2] are also available as subprocess.stdin,subprocess.stdout, and subprocess.stderr, respectively.

In the following example, only the child's fd 1 (stdout) is configured as a pipe, so only the parent's subprocess.stdio[1] is a stream, all other values in the array are null.

const assert = require('node:assert');
const fs = require('node:fs');
const child_process = require('node:child_process');

const subprocess = child_process.spawn('ls', {
  stdio: [
    0, // Use parent's stdin for child.
    'pipe', // Pipe child's stdout to parent.
    fs.openSync('err.out', 'w'), // Direct child's stderr to a file.
  ],
});

assert.strictEqual(subprocess.stdio[0], null);
assert.strictEqual(subprocess.stdio[0], subprocess.stdin);

assert(subprocess.stdout);
assert.strictEqual(subprocess.stdio[1], subprocess.stdout);

assert.strictEqual(subprocess.stdio[2], null);
assert.strictEqual(subprocess.stdio[2], subprocess.stderr);

The subprocess.stdio property can be undefined if the child process could not be successfully spawned.

Type

[
Writable | null,
Readable | null,
Readable | null,
Readable
| Writable
| null
| undefined
,
Readable
| Writable
| null
| undefined
,
]