diff options
author | Nathan Whitaker <17734409+nathanwhit@users.noreply.github.com> | 2024-08-08 18:45:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-08 16:45:41 +0000 |
commit | 3f692bed0a62de79895ea3373b9004fd6a542035 (patch) | |
tree | 4c100b1f3a273e1b297e4f826613249502d20425 | |
parent | e36b1a3aa88b31435b18a33448fc75eeb6dc8017 (diff) |
fix(add): Support dist tags in deno add (#24960)
Fixes #24956.
-rw-r--r-- | cli/npm/mod.rs | 4 | ||||
-rw-r--r-- | tests/specs/add/dist_tag/__test__.jsonc | 9 | ||||
-rw-r--r-- | tests/specs/add/dist_tag/deno.json | 0 | ||||
-rw-r--r-- | tests/specs/install/future_install_add_dist_tag/__test__.jsonc | 12 | ||||
-rw-r--r-- | tests/specs/install/future_install_add_dist_tag/deno.json | 0 | ||||
-rw-r--r-- | tests/specs/install/future_install_add_dist_tag/install.out | 15 |
6 files changed, 40 insertions, 0 deletions
diff --git a/cli/npm/mod.rs b/cli/npm/mod.rs index f883883aa..c8f87e6af 100644 --- a/cli/npm/mod.rs +++ b/cli/npm/mod.rs @@ -124,6 +124,10 @@ impl NpmFetchResolver { let maybe_get_nv = || async { let name = req.name.clone(); let package_info = self.package_info(&name).await?; + if let Some(dist_tag) = req.version_req.tag() { + let version = package_info.dist_tags.get(dist_tag)?.clone(); + return Some(PackageNv { name, version }); + } // Find the first matching version of the package. let mut versions = package_info.versions.keys().collect::<Vec<_>>(); versions.sort(); diff --git a/tests/specs/add/dist_tag/__test__.jsonc b/tests/specs/add/dist_tag/__test__.jsonc new file mode 100644 index 000000000..ac8a65654 --- /dev/null +++ b/tests/specs/add/dist_tag/__test__.jsonc @@ -0,0 +1,9 @@ +{ + "tempDir": true, + "steps": [ + { + "args": "add npm:ajv@latest", + "output": "Add npm:ajv@8.11.0\n" + } + ] +} diff --git a/tests/specs/add/dist_tag/deno.json b/tests/specs/add/dist_tag/deno.json new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/specs/add/dist_tag/deno.json diff --git a/tests/specs/install/future_install_add_dist_tag/__test__.jsonc b/tests/specs/install/future_install_add_dist_tag/__test__.jsonc new file mode 100644 index 000000000..a3247d160 --- /dev/null +++ b/tests/specs/install/future_install_add_dist_tag/__test__.jsonc @@ -0,0 +1,12 @@ +{ + "tempDir": true, + "steps": [ + { + "envs": { + "DENO_FUTURE": "1" + }, + "args": "install npm:ajv@latest", + "output": "install.out" + } + ] +} diff --git a/tests/specs/install/future_install_add_dist_tag/deno.json b/tests/specs/install/future_install_add_dist_tag/deno.json new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/specs/install/future_install_add_dist_tag/deno.json diff --git a/tests/specs/install/future_install_add_dist_tag/install.out b/tests/specs/install/future_install_add_dist_tag/install.out new file mode 100644 index 000000000..643a5cb06 --- /dev/null +++ b/tests/specs/install/future_install_add_dist_tag/install.out @@ -0,0 +1,15 @@ +Add npm:ajv@8.11.0 +[UNORDERED_START] +Download http://localhost:4260/ajv +Download http://localhost:4260/fast-deep-equal +Download http://localhost:4260/json-schema-traverse +Download http://localhost:4260/require-from-string +Download http://localhost:4260/uri-js +Download http://localhost:4260/punycode +Download http://localhost:4260/ajv/ajv-8.11.0.tgz +Download http://localhost:4260/fast-deep-equal/fast-deep-equal-3.1.3.tgz +Download http://localhost:4260/uri-js/uri-js-4.4.1.tgz +Download http://localhost:4260/json-schema-traverse/json-schema-traverse-1.0.0.tgz +Download http://localhost:4260/require-from-string/require-from-string-2.0.2.tgz +Download http://localhost:4260/punycode/punycode-2.1.1.tgz +[UNORDERED_END] |