From 2722e5d4509479b11ee28d691e7d74533a152133 Mon Sep 17 00:00:00 2001 From: Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com> Date: Wed, 13 Sep 2023 20:29:57 +0200 Subject: [PATCH] Support `node:` prefix for CJS dependencies --- packages/utils/node-resolver-rs/src/lib.rs | 12 ++++++++++++ packages/utils/node-resolver-rs/src/specifier.rs | 5 +++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/utils/node-resolver-rs/src/lib.rs b/packages/utils/node-resolver-rs/src/lib.rs index a0e3deb4dfe..366f43836ff 100644 --- a/packages/utils/node-resolver-rs/src/lib.rs +++ b/packages/utils/node-resolver-rs/src/lib.rs @@ -2297,6 +2297,18 @@ mod tests { .0, Resolution::Builtin("zlib".into()) ); + assert_eq!( + test_resolver() + .resolve( + "node:fs/promises", + &root().join("foo.js"), + SpecifierType::Cjs + ) + .result + .unwrap() + .0, + Resolution::Builtin("fs/promises".into()) + ); } #[test] diff --git a/packages/utils/node-resolver-rs/src/specifier.rs b/packages/utils/node-resolver-rs/src/specifier.rs index 73f862127a3..24b8d702f89 100644 --- a/packages/utils/node-resolver-rs/src/specifier.rs +++ b/packages/utils/node-resolver-rs/src/specifier.rs @@ -136,8 +136,9 @@ impl<'a> Specifier<'a> { } } SpecifierType::Cjs => { - if BUILTINS.contains(&specifier) { - (Specifier::Builtin(Cow::Borrowed(specifier)), None) + let builtin = specifier.strip_prefix("node:").unwrap_or(specifier); + if BUILTINS.contains(&builtin) { + (Specifier::Builtin(Cow::Borrowed(builtin)), None) } else { #[cfg(windows)] if !flags.contains(Flags::ABSOLUTE_SPECIFIERS) {