diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2022-11-13 10:42:15 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-13 10:42:15 -0500 |
commit | 2063ed7385712290d5f8e011145a58f7c95737e8 (patch) | |
tree | ea9ed19d5104fdcea44d0014f0b00770d523121b /cli/npm | |
parent | f81ad0b7c2ba85eeb99535189a6617af6488ff88 (diff) |
feat(npm): require --unstable for npm specifiers in remote modules (#16612)
Diffstat (limited to 'cli/npm')
-rw-r--r-- | cli/npm/resolution/specifier.rs | 14 |
1 files changed, 5 insertions, 9 deletions
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::<Vec<_>>(); @@ -244,11 +243,8 @@ pub fn resolve_npm_package_reqs(graph: &ModuleGraph) -> Vec<NpmPackageReq> { // 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 |