From 2063ed7385712290d5f8e011145a58f7c95737e8 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Sun, 13 Nov 2022 10:42:15 -0500 Subject: feat(npm): require --unstable for npm specifiers in remote modules (#16612) --- cli/npm/resolution/specifier.rs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'cli/npm') diff --git a/cli/npm/resolution/specifier.rs b/cli/npm/resolution/specifier.rs index c529d393b..efcea9d99 100644 --- a/cli/npm/resolution/specifier.rs +++ b/cli/npm/resolution/specifier.rs @@ -35,10 +35,9 @@ impl NpmPackageReference { let specifier = match specifier.strip_prefix("npm:") { Some(s) => s, None => { - return Err(generic_error(format!( - "Not an npm specifier: {}", - specifier - ))); + // don't allocate a string here and instead use a static string + // because this is hit a lot when a url is not an npm specifier + return Err(generic_error("Not an npm specifier")); } }; let parts = specifier.split('/').collect::>(); @@ -244,11 +243,8 @@ pub fn resolve_npm_package_reqs(graph: &ModuleGraph) -> Vec { // fill this leaf's information for specifier in &specifiers { - if specifier.scheme() == "npm" { - // this will error elsewhere if not the case - if let Ok(npm_ref) = NpmPackageReference::from_specifier(specifier) { - leaf.reqs.insert(npm_ref.req); - } + if let Ok(npm_ref) = NpmPackageReference::from_specifier(specifier) { + leaf.reqs.insert(npm_ref.req); } else if !specifier.as_str().starts_with(&parent_specifier.as_str()) { leaf .dependencies -- cgit v1.2.3