From bcb7e600c024adb3c929a25a1a75fc24a600b31b Mon Sep 17 00:00:00 2001 From: David Sherret Date: Sun, 28 Jul 2024 15:41:10 -0400 Subject: [PATCH] fix: actually add missing `node:readline/promises` module (#24772) Closes #24768 (cherry picked from commit 50fa4d7ef5d0615d60042eda72e34adb773e2ecf) --- cli/module_loader.rs | 3 ++- ext/node/lib.rs | 1 + ext/node/polyfills/01_require.js | 2 +- tests/specs/node/readline_promises/__test__.jsonc | 4 ++++ tests/specs/node/readline_promises/main.out | 10 ++++++++++ tests/specs/node/readline_promises/main.ts | 10 ++++++++++ 6 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 tests/specs/node/readline_promises/__test__.jsonc create mode 100644 tests/specs/node/readline_promises/main.out create mode 100644 tests/specs/node/readline_promises/main.ts diff --git a/cli/module_loader.rs b/cli/module_loader.rs index bda4e58d86..3ac222b013 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -612,7 +612,8 @@ impl maybe_referrer: Option<&ModuleSpecifier>, ) -> Result, AnyError> { if specifier.scheme() == "node" { - unreachable!(); // Node built-in modules should be handled internally. + // Node built-in modules should be handled internally. + unreachable!("Deno bug. {} was misconfigured internally.", specifier); } match graph.get(specifier) { diff --git a/ext/node/lib.rs b/ext/node/lib.rs index 2c86505779..8d6d76f09a 100644 --- a/ext/node/lib.rs +++ b/ext/node/lib.rs @@ -598,6 +598,7 @@ deno_core::extension!(deno_node, "node:punycode" = "punycode.ts", "node:querystring" = "querystring.js", "node:readline" = "readline.ts", + "node:readline/promises" = "readline/promises.ts", "node:repl" = "repl.ts", "node:stream" = "stream.ts", "node:stream/consumers" = "stream/consumers.mjs", diff --git a/ext/node/polyfills/01_require.js b/ext/node/polyfills/01_require.js index bbcc7555d9..94d6e90e08 100644 --- a/ext/node/polyfills/01_require.js +++ b/ext/node/polyfills/01_require.js @@ -132,7 +132,7 @@ import punycode from "node:punycode"; import process from "node:process"; import querystring from "node:querystring"; import readline from "node:readline"; -import readlinePromises from "ext:deno_node/readline/promises.ts"; +import readlinePromises from "node:readline/promises"; import repl from "node:repl"; import stream from "node:stream"; import streamConsumers from "node:stream/consumers"; diff --git a/tests/specs/node/readline_promises/__test__.jsonc b/tests/specs/node/readline_promises/__test__.jsonc new file mode 100644 index 0000000000..70840dee2b --- /dev/null +++ b/tests/specs/node/readline_promises/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "run --allow-read main.ts", + "output": "main.out" +} diff --git a/tests/specs/node/readline_promises/main.out b/tests/specs/node/readline_promises/main.out new file mode 100644 index 0000000000..2839ce9a18 --- /dev/null +++ b/tests/specs/node/readline_promises/main.out @@ -0,0 +1,10 @@ +import rl from "node:readline/promises"; +import fs from "node:fs"; + +const r = rl.createInterface({ + input: fs.createReadStream("main.ts"), +}); + +for await (const line of r) { + console.log(line); +} diff --git a/tests/specs/node/readline_promises/main.ts b/tests/specs/node/readline_promises/main.ts new file mode 100644 index 0000000000..2839ce9a18 --- /dev/null +++ b/tests/specs/node/readline_promises/main.ts @@ -0,0 +1,10 @@ +import rl from "node:readline/promises"; +import fs from "node:fs"; + +const r = rl.createInterface({ + input: fs.createReadStream("main.ts"), +}); + +for await (const line of r) { + console.log(line); +}