diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2022-09-22 11:17:02 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-22 11:17:02 -0400 |
commit | 716005a0d4afd1042fa75d8bdc32fd13e9ebe95f (patch) | |
tree | 4c417eb7b91d6203aacba7dcd81bee3f13c0cfd3 /cli/npm/resolution.rs | |
parent | 9a216806d514b5f41c73c777010572cdf3c51eab (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.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() } |