diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/jsr.rs | 14 | ||||
-rw-r--r-- | cli/npm/mod.rs | 2 |
2 files changed, 10 insertions, 6 deletions
diff --git a/cli/jsr.rs b/cli/jsr.rs index 1f030ce70..1e194da71 100644 --- a/cli/jsr.rs +++ b/cli/jsr.rs @@ -207,14 +207,18 @@ impl JsrFetchResolver { let maybe_get_nv = || async { let name = req.name.clone(); let package_info = self.package_info(&name).await?; - // Find the first matching version of the package which is cached. - let mut versions = package_info.versions.keys().collect::<Vec<_>>(); - versions.sort(); + // Find the first matching version of the package. + let mut versions = package_info.versions.iter().collect::<Vec<_>>(); + versions.sort_by_key(|(v, _)| *v); let version = versions .into_iter() .rev() - .find(|v| req.version_req.tag().is_none() && req.version_req.matches(v)) - .cloned()?; + .find(|(v, i)| { + !i.yanked + && req.version_req.tag().is_none() + && req.version_req.matches(v) + }) + .map(|(v, _)| v.clone())?; Some(PackageNv { name, version }) }; let nv = maybe_get_nv().await; diff --git a/cli/npm/mod.rs b/cli/npm/mod.rs index 08c15941a..c17918c67 100644 --- a/cli/npm/mod.rs +++ b/cli/npm/mod.rs @@ -119,7 +119,7 @@ impl NpmFetchResolver { let maybe_get_nv = || async { let name = req.name.clone(); let package_info = self.package_info(&name).await?; - // Find the first matching version of the package which is cached. + // Find the first matching version of the package. let mut versions = package_info.versions.keys().collect::<Vec<_>>(); versions.sort(); let version = versions |