diff options
author | Marvin Hagemeister <hello@marvinh.dev> | 2023-06-02 17:46:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-02 09:46:50 -0600 |
commit | f5c1ff08e6c67c38043b4c76b5472ad71c93d697 (patch) | |
tree | 5cce535783e820fdec68c5672362539b62bba473 /ext/node/polyfills/internal/child_process.ts | |
parent | 25fdc7bf6c72967cec2bfbd3f18246d1515fce57 (diff) |
fix(node): map stdio [0, 1, 2] to "inherit" (#19352)
<!--
Before submitting a PR, please read https://deno.com/manual/contributing
1. Give the PR a descriptive title.
Examples of good title:
- fix(std/http): Fix race condition in server
- docs(console): Update docstrings
- feat(doc): Handle nested reexports
Examples of bad title:
- fix #7123
- update docs
- fix bugs
2. Ensure there is a related issue and it is referenced in the PR text.
3. Ensure there are tests that cover the changes.
4. Ensure `cargo test` passes.
5. Ensure `./tools/format.js` passes without changing files.
6. Ensure `./tools/lint.js` passes.
7. Open as a draft PR if your work is still in progress. The CI won't
run
all steps, but you can add '[ci]' to a commit message to force it to.
8. If you would like to run the benchmarks on the CI, add the 'ci-bench'
label.
-->
Internally, `node-tap` spawns a child process with `stdio: [0, 1, 2]`.
Whilst we don't support passing fd numbers as an argument so far, it
turns out that `[0, 1, 2]` is equivalent to `"inherit"` which we already
support. See: https://nodejs.org/api/child_process.html#optionsstdio
Mapping it to `"inherit"` is fine for us and gets us one step closer in
getting `node-tap` working. I'm now at the stage where already the
coverage table is shown 🎉
Diffstat (limited to 'ext/node/polyfills/internal/child_process.ts')
-rw-r--r-- | ext/node/polyfills/internal/child_process.ts | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/ext/node/polyfills/internal/child_process.ts b/ext/node/polyfills/internal/child_process.ts index 365af4add..d4acf1db2 100644 --- a/ext/node/polyfills/internal/child_process.ts +++ b/ext/node/polyfills/internal/child_process.ts @@ -469,6 +469,13 @@ function normalizeStdioOption( ...Array<Stream | NodeStdio | number>, ] { if (Array.isArray(stdio)) { + // `[0, 1, 2]` is equivalent to `"inherit"` + if ( + stdio.length === 3 && stdio[0] === 0 && stdio[1] === 1 && stdio[2] === 2 + ) { + return ["inherit", "inherit", "inherit"]; + } + // At least 3 stdio must be created to match node while (stdio.length < 3) { ArrayPrototypePush(stdio, undefined); |