1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-24 08:09:08 -05:00

feat(runtime/command): make stdin default to inherit for spawn() (#17334)

Closes #17230
This commit is contained in:
Leo Kettmeir 2023-01-24 15:03:46 +01:00 committed by GitHub
parent 654e177c91
commit cadeaae045
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 3 deletions

View file

@ -83,6 +83,24 @@ Deno.test(
},
);
Deno.test(
{ permissions: { run: true, read: true } },
async function commandStdinPiped() {
const command = new Deno.Command(Deno.execPath(), {
args: ["info"],
stdout: "null",
stderr: "null",
});
const child = command.spawn();
assertThrows(() => child.stdin, TypeError, "stdin is not piped");
assertThrows(() => child.stdout, TypeError, "stdout is not piped");
assertThrows(() => child.stderr, TypeError, "stderr is not piped");
await child.status;
},
);
Deno.test(
{ permissions: { run: true, read: true } },
async function commandStdoutPiped() {

View file

@ -95,9 +95,9 @@ declare namespace Deno {
type NativeVoidType = "void";
/** **UNSTABLE**: New API, yet to be vetted.
*
*
* The native struct type for interfacing with foreign functions.
*
*
*/
type NativeStructType = { readonly struct: readonly NativeType[] };
@ -1640,7 +1640,8 @@ declare namespace Deno {
/** How `stdin` of the spawned process should be handled.
*
* Defaults to `"null"`. */
* Defaults to `"inherit"` for `output` & `outputSync`,
* and `"inherit"` for `spawn`. */
stdin?: "piped" | "inherit" | "null";
/** How `stdout` of the spawned process should be handled.
*

View file

@ -315,6 +315,7 @@
...(this.#options ?? {}),
stdout: this.#options?.stdout ?? "inherit",
stderr: this.#options?.stderr ?? "inherit",
stdin: this.#options?.stdin ?? "inherit",
};
return spawnChild(this.#command, options);
}