diff options
Diffstat (limited to 'cli/npm/resolution/graph.rs')
-rw-r--r-- | cli/npm/resolution/graph.rs | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/cli/npm/resolution/graph.rs b/cli/npm/resolution/graph.rs index 497067925..b56df35ae 100644 --- a/cli/npm/resolution/graph.rs +++ b/cli/npm/resolution/graph.rs @@ -415,7 +415,7 @@ impl<'a, TNpmRegistryApi: NpmRegistryApi> &self, name: &str, version_matcher: &impl NpmVersionMatcher, - package_info: NpmPackageInfo, + package_info: &NpmPackageInfo, ) -> Result<VersionAndInfo, AnyError> { if let Some(version) = self.resolve_best_package_version(name, version_matcher) @@ -462,10 +462,14 @@ impl<'a, TNpmRegistryApi: NpmRegistryApi> maybe_best_version.cloned() } + pub fn has_package_req(&self, req: &NpmPackageReq) -> bool { + self.graph.has_package_req(req) + } + pub fn add_package_req( &mut self, package_req: &NpmPackageReq, - package_info: NpmPackageInfo, + package_info: &NpmPackageInfo, ) -> Result<(), AnyError> { let node = self.resolve_node_from_info( &package_req.name, @@ -484,7 +488,7 @@ impl<'a, TNpmRegistryApi: NpmRegistryApi> fn analyze_dependency( &mut self, entry: &NpmDependencyEntry, - package_info: NpmPackageInfo, + package_info: &NpmPackageInfo, parent_id: &NpmPackageId, visited_versions: &Arc<VisitedVersionsPath>, ) -> Result<(), AnyError> { @@ -536,7 +540,7 @@ impl<'a, TNpmRegistryApi: NpmRegistryApi> &mut self, name: &str, version_matcher: &impl NpmVersionMatcher, - package_info: NpmPackageInfo, + package_info: &NpmPackageInfo, ) -> Result<Arc<Mutex<Node>>, AnyError> { let version_and_info = self.resolve_best_package_version_and_info( name, @@ -613,7 +617,7 @@ impl<'a, TNpmRegistryApi: NpmRegistryApi> NpmDependencyEntryKind::Dep => { self.analyze_dependency( dep, - package_info, + &package_info, &parent_id, &visited_versions, )?; @@ -624,7 +628,7 @@ impl<'a, TNpmRegistryApi: NpmRegistryApi> &dep.bare_specifier, &parent_id, dep, - package_info, + &package_info, &visited_versions, )?; if let Some(new_parent_id) = maybe_new_parent_id { @@ -647,7 +651,7 @@ impl<'a, TNpmRegistryApi: NpmRegistryApi> specifier: &str, parent_id: &NpmPackageId, peer_dep: &NpmDependencyEntry, - peer_package_info: NpmPackageInfo, + peer_package_info: &NpmPackageInfo, visited_ancestor_versions: &Arc<VisitedVersionsPath>, ) -> Result<Option<NpmPackageId>, AnyError> { fn find_matching_child<'a>( @@ -881,7 +885,7 @@ struct VersionAndInfo { fn get_resolved_package_version_and_info( pkg_name: &str, version_matcher: &impl NpmVersionMatcher, - info: NpmPackageInfo, + info: &NpmPackageInfo, parent: Option<&NpmPackageId>, ) -> Result<VersionAndInfo, AnyError> { let mut maybe_best_version: Option<VersionAndInfo> = None; @@ -922,7 +926,7 @@ fn get_resolved_package_version_and_info( bail!("Could not find dist-tag '{}'.", tag) } } else { - for (_, version_info) in info.versions.into_iter() { + for version_info in info.versions.values() { let version = NpmVersion::parse(&version_info.version)?; if version_matcher.matches(&version) { let is_best_version = maybe_best_version @@ -932,7 +936,7 @@ fn get_resolved_package_version_and_info( if is_best_version { maybe_best_version = Some(VersionAndInfo { version, - info: version_info, + info: version_info.clone(), }); } } @@ -981,7 +985,7 @@ mod test { let result = get_resolved_package_version_and_info( "test", &package_ref.req, - NpmPackageInfo { + &NpmPackageInfo { name: "test".to_string(), versions: HashMap::new(), dist_tags: HashMap::from([( @@ -1001,7 +1005,7 @@ mod test { let result = get_resolved_package_version_and_info( "test", &package_ref.req, - NpmPackageInfo { + &NpmPackageInfo { name: "test".to_string(), versions: HashMap::from([ ("0.1.0".to_string(), NpmPackageVersionInfo::default()), @@ -2014,7 +2018,7 @@ mod test { for req in reqs { let req = NpmPackageReference::from_str(req).unwrap().req; resolver - .add_package_req(&req, api.package_info(&req.name).await.unwrap()) + .add_package_req(&req, &api.package_info(&req.name).await.unwrap()) .unwrap(); } |