From 9026f20b2dc0ee97bde3cc6ea8438dafbec5fad3 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Thu, 26 Oct 2023 21:22:15 -0400 Subject: fix(unstable/byonm): improve error messages (#20987) This improves the error messages when a specifier can't be resolved from a deno module into an npm package. --- ext/node/lib.rs | 1 + ext/node/resolution.rs | 12 ++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'ext') diff --git a/ext/node/lib.rs b/ext/node/lib.rs index a54d5a010..6d7e85ec4 100644 --- a/ext/node/lib.rs +++ b/ext/node/lib.rs @@ -32,6 +32,7 @@ pub use path::PathClean; pub use polyfill::is_builtin_node_module; pub use polyfill::SUPPORTED_BUILTIN_NODE_MODULES; pub use polyfill::SUPPORTED_BUILTIN_NODE_MODULES_WITH_PREFIX; +pub use resolution::parse_npm_pkg_name; pub use resolution::NodeModuleKind; pub use resolution::NodeResolution; pub use resolution::NodeResolutionMode; diff --git a/ext/node/resolution.rs b/ext/node/resolution.rs index cbe9f643f..cb4fef405 100644 --- a/ext/node/resolution.rs +++ b/ext/node/resolution.rs @@ -448,7 +448,7 @@ impl NodeResolver { } /// Checks if the resolved file has a corresponding declaration file. - pub(super) fn path_to_declaration_path( + fn path_to_declaration_path( &self, path: PathBuf, referrer_kind: NodeModuleKind, @@ -975,7 +975,7 @@ impl NodeResolver { permissions: &dyn NodePermissions, ) -> Result, AnyError> { let (package_name, package_subpath, _is_scoped) = - parse_package_name(specifier, referrer)?; + parse_npm_pkg_name(specifier, referrer)?; // ResolveSelf let Some(package_config) = @@ -1485,7 +1485,7 @@ fn throw_exports_not_found( ) } -fn parse_package_name( +pub fn parse_npm_pkg_name( specifier: &str, referrer: &ModuleSpecifier, ) -> Result<(String, String, bool), AnyError> { @@ -1727,15 +1727,15 @@ mod tests { let dummy_referrer = Url::parse("http://example.com").unwrap(); assert_eq!( - parse_package_name("fetch-blob", &dummy_referrer).unwrap(), + parse_npm_pkg_name("fetch-blob", &dummy_referrer).unwrap(), ("fetch-blob".to_string(), ".".to_string(), false) ); assert_eq!( - parse_package_name("@vue/plugin-vue", &dummy_referrer).unwrap(), + parse_npm_pkg_name("@vue/plugin-vue", &dummy_referrer).unwrap(), ("@vue/plugin-vue".to_string(), ".".to_string(), true) ); assert_eq!( - parse_package_name("@astrojs/prism/dist/highlighter", &dummy_referrer) + parse_npm_pkg_name("@astrojs/prism/dist/highlighter", &dummy_referrer) .unwrap(), ( "@astrojs/prism".to_string(), -- cgit v1.2.3