diff options
Diffstat (limited to 'cli/npm/resolution.rs')
-rw-r--r-- | cli/npm/resolution.rs | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/cli/npm/resolution.rs b/cli/npm/resolution.rs index 4bde3b340..87fa9922f 100644 --- a/cli/npm/resolution.rs +++ b/cli/npm/resolution.rs @@ -2,6 +2,7 @@ use std::cmp::Ordering; use std::collections::HashMap; +use std::collections::HashSet; use std::collections::VecDeque; use deno_ast::ModuleSpecifier; @@ -185,6 +186,26 @@ impl NpmResolutionSnapshot { } } + pub fn top_level_packages(&self) -> Vec<NpmPackageId> { + self + .package_reqs + .iter() + .map(|(req, version)| NpmPackageId { + name: req.name.clone(), + version: version.clone(), + }) + .collect::<HashSet<_>>() + .into_iter() + .collect::<Vec<_>>() + } + + pub fn package_from_id( + &self, + id: &NpmPackageId, + ) -> Option<&NpmResolutionPackage> { + self.packages.get(id) + } + pub fn resolve_package_from_package( &self, name: &str, @@ -471,8 +492,6 @@ impl NpmResolution { !self.snapshot.read().packages.is_empty() } - // todo(dsherret): for use in the lsp - #[allow(dead_code)] pub fn snapshot(&self) -> NpmResolutionSnapshot { self.snapshot.read().clone() } |