summaryrefslogtreecommitdiff
path: root/cli/npm/resolution.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2022-09-22 11:17:02 -0400
committerGitHub <noreply@github.com>2022-09-22 11:17:02 -0400
commit716005a0d4afd1042fa75d8bdc32fd13e9ebe95f (patch)
tree4c417eb7b91d6203aacba7dcd81bee3f13c0cfd3 /cli/npm/resolution.rs
parent9a216806d514b5f41c73c777010572cdf3c51eab (diff)
feat(npm): add flag for creating and resolving npm packages to a local node_modules folder (#15971)
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()
}