import { Deno } from "https://deno.land/x/ayonli_jsext@v0.9.72/lib.deno.d.ts";
const { Command } = Deno;
Create a child process.
If any stdio options are not set to "piped"
, accessing the corresponding
field on the Command
or its CommandOutput
will throw a TypeError
.
If stdin
is set to "piped"
, the stdin
WritableStream
needs to be closed manually.
Examples
Spawn a subprocess and pipe the output to a file
Spawn a subprocess and pipe the output to a file
const command = new Deno.Command(Deno.execPath(), {
args: [
"eval",
"console.log('Hello World')",
],
stdin: "piped",
stdout: "piped",
});
const child = command.spawn();
// open a file and pipe the subprocess output to it.
child.stdout.pipeTo(
Deno.openSync("output", { write: true, create: true }).writable,
);
// manually close stdin
child.stdin.close();
const status = await child.status;
Spawn a subprocess and collect its output
Spawn a subprocess and collect its output
const command = new Deno.Command(Deno.execPath(), {
args: [
"eval",
"console.log('hello'); console.error('world')",
],
});
const { code, stdout, stderr } = await command.output();
console.assert(code === 0);
console.assert("hello\n" === new TextDecoder().decode(stdout));
console.assert("world\n" === new TextDecoder().decode(stderr));
Spawn a subprocess and collect its output synchronously
Spawn a subprocess and collect its output synchronously
const command = new Deno.Command(Deno.execPath(), {
args: [
"eval",
"console.log('hello'); console.error('world')",
],
});
const { code, stdout, stderr } = command.outputSync();
console.assert(code === 0);
console.assert("hello\n" === new TextDecoder().decode(stdout));
console.assert("world\n" === new TextDecoder().decode(stderr));
Constructors
Methods
Executes the Deno.Command
, waiting for it to finish and
collecting all of its output.
If spawn()
was called, calling this function will collect the remaining
output.
Will throw an error if stdin: "piped"
is set.
If options stdout
or stderr
are not set to "piped"
, accessing the
corresponding field on Deno.CommandOutput
will throw a TypeError
.
Synchronously executes the Deno.Command
, waiting for it to
finish and collecting all of its output.
Will throw an error if stdin: "piped"
is set.
If options stdout
or stderr
are not set to "piped"
, accessing the
corresponding field on Deno.CommandOutput
will throw a TypeError
.
Spawns a streamable subprocess, allowing to use the other methods.