summaryrefslogtreecommitdiff
path: root/cli/npm/resolution.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/npm/resolution.rs')
-rw-r--r--cli/npm/resolution.rs23
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()
}