summaryrefslogtreecommitdiff
path: root/cli/tools/registry/pm.rs
diff options
context:
space:
mode:
authorBartek Iwańczuk <biwanczuk@gmail.com>2024-09-04 13:55:30 +0100
committerGitHub <noreply@github.com>2024-09-04 12:55:30 +0000
commitc58a628e2ff449f8cbbdcd6bb8baeaba1ea95a4d (patch)
tree70b96f0826f7ed9067efd39082dff6ca57258d70 /cli/tools/registry/pm.rs
parent74fc66da110ec20d12751e7a0922cea300314399 (diff)
feat(add): strip package subpath when adding a package (#25419)
These now works: ``` $ deno add @std/dotenv/load $ deno add npm:preact/hooks ``` Previously we were erroring out, because this is a "package reference" including a subpath. Closes https://github.com/denoland/deno/issues/25385 --------- Signed-off-by: Bartek Iwańczuk <biwanczuk@gmail.com> Co-authored-by: David Sherret <dsherret@users.noreply.github.com>
Diffstat (limited to 'cli/tools/registry/pm.rs')
-rw-r--r--cli/tools/registry/pm.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/cli/tools/registry/pm.rs b/cli/tools/registry/pm.rs
index 4a36b459a..e61da31d5 100644
--- a/cli/tools/registry/pm.rs
+++ b/cli/tools/registry/pm.rs
@@ -3,6 +3,8 @@
mod cache_deps;
pub use cache_deps::cache_top_level_deps;
+use deno_semver::jsr::JsrPackageReqReference;
+use deno_semver::npm::NpmPackageReqReference;
use std::borrow::Cow;
use std::path::Path;
@@ -501,14 +503,18 @@ impl AddPackageReq {
match prefix {
Prefix::Jsr => {
- let package_req = PackageReq::from_str(entry_text)?;
+ let req_ref =
+ JsrPackageReqReference::from_str(&format!("jsr:{}", entry_text))?;
+ let package_req = req_ref.into_inner().req;
Ok(AddPackageReq {
alias: maybe_alias.unwrap_or_else(|| package_req.name.to_string()),
value: AddPackageReqValue::Jsr(package_req),
})
}
Prefix::Npm => {
- let package_req = PackageReq::from_str(entry_text)?;
+ let req_ref =
+ NpmPackageReqReference::from_str(&format!("npm:{}", entry_text))?;
+ let package_req = req_ref.into_inner().req;
Ok(AddPackageReq {
alias: maybe_alias.unwrap_or_else(|| package_req.name.to_string()),
value: AddPackageReqValue::Npm(package_req),