summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarvin Hagemeister <hello@marvinh.dev>2023-05-18 21:42:27 +0200
committerGitHub <noreply@github.com>2023-05-18 15:42:27 -0400
commitff0daa2b9d8a149d36173e19ce8dc169921486c7 (patch)
treeec914a4e736cf797420f6390a7667e427c7f37b7
parent877b38b37043c1f45577f1835119caa7df6169e3 (diff)
fix(npm): `process` not defined in readline (#19184)
Issue was that we create node globals much later, so pulling `process` via a module import is the way to go. Fixes #19183
-rw-r--r--cli/tests/unit_node/readline_test.ts13
-rw-r--r--ext/node/polyfills/internal/readline/interface.mjs1
2 files changed, 14 insertions, 0 deletions
diff --git a/cli/tests/unit_node/readline_test.ts b/cli/tests/unit_node/readline_test.ts
index bef9008dd..914d23e4a 100644
--- a/cli/tests/unit_node/readline_test.ts
+++ b/cli/tests/unit_node/readline_test.ts
@@ -12,3 +12,16 @@ Deno.test("[node/readline] createInstance", () => {
// deno-lint-ignore no-explicit-any
assertInstanceOf(rl, Interface as any);
});
+
+// Test for https://github.com/denoland/deno/issues/19183
+Deno.test("[node/readline] don't throw on rl.question()", () => {
+ const rli = createInterface({
+ input: new Readable({ read() {} }),
+ output: new Writable({ write() {} }),
+ terminal: true,
+ });
+
+ // Calling this would throw
+ rli.question("foo", () => rli.close());
+ rli.close();
+});
diff --git a/ext/node/polyfills/internal/readline/interface.mjs b/ext/node/polyfills/internal/readline/interface.mjs
index 3d3f99cad..bbb453df0 100644
--- a/ext/node/polyfills/internal/readline/interface.mjs
+++ b/ext/node/polyfills/internal/readline/interface.mjs
@@ -44,6 +44,7 @@ import {
} from "ext:deno_node/internal/readline/utils.mjs";
import { clearScreenDown, cursorTo, moveCursor } from "ext:deno_node/internal/readline/callbacks.mjs";
import { Readable } from "ext:deno_node/_stream.mjs";
+import process from "ext:deno_node/process.ts";
import { StringDecoder } from "ext:deno_node/string_decoder.ts";
import {