diff --git a/cli/compat.rs b/cli/compat.rs index a3d16538dc0ca4..eb67f4d12d8bdb 100644 --- a/cli/compat.rs +++ b/cli/compat.rs @@ -53,7 +53,12 @@ pub fn get_mapped_node_builtins() -> HashMap { for module in SUPPORTED_MODULES { // TODO(bartlomieju): this is unversioned, and should be fixed to use latest stable? let module_url = format!("https://deno.land/std/node/{}.ts", module); - mappings.insert(module.to_string(), module_url); + mappings.insert(module.to_string(), module_url.clone()); + + // Support for `node:` + // https://nodejs.org/api/esm.html#esm_node_imports + let node_prefixed = format!("node:{}", module); + mappings.insert(node_prefixed, module_url); } mappings diff --git a/cli/tests/integration/compat_tests.rs b/cli/tests/integration/compat_tests.rs index 4d93d370d25abc..e1da32cafdca32 100644 --- a/cli/tests/integration/compat_tests.rs +++ b/cli/tests/integration/compat_tests.rs @@ -7,6 +7,11 @@ itest!(fs_promises { output: "compat/fs_promises.out", }); +itest!(node_prefix_fs_promises { + args: "run --compat --unstable -A compat/node_fs_promises.js", + output: "compat/fs_promises.out", +}); + itest!(existing_import_map { args: "run --compat --import-map compat/existing_import_map.json compat/fs_promises.js", output: "compat/existing_import_map.out", diff --git a/cli/tests/testdata/compat/node_fs_promises.js b/cli/tests/testdata/compat/node_fs_promises.js new file mode 100644 index 00000000000000..b2174b22bb05f5 --- /dev/null +++ b/cli/tests/testdata/compat/node_fs_promises.js @@ -0,0 +1,3 @@ +import fs from "node:fs/promises"; +const data = await fs.readFile("compat/test.txt", "utf-8"); +console.log(data);