diff options
author | Nayeem Rahman <nayeemrmn99@gmail.com> | 2024-06-11 18:14:36 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-11 18:14:36 +0100 |
commit | 0c199acb88c085d30403fa2fd80b63f7994e2f10 (patch) | |
tree | a2ed5abcc7154ab210d5f720af1d106f9e2a2925 /cli/lsp/resolver.rs | |
parent | 68e18234264ce9e1670c7baa18d29accba949b34 (diff) |
refactor(lsp): collect npm reqs by scope (#24172)
Diffstat (limited to 'cli/lsp/resolver.rs')
-rw-r--r-- | cli/lsp/resolver.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/cli/lsp/resolver.rs b/cli/lsp/resolver.rs index bd09f0ad1..c06bbfc8d 100644 --- a/cli/lsp/resolver.rs +++ b/cli/lsp/resolver.rs @@ -43,6 +43,8 @@ use deno_semver::package::PackageReq; use indexmap::IndexMap; use package_json::PackageJsonDepsProvider; use std::borrow::Cow; +use std::collections::BTreeMap; +use std::collections::BTreeSet; use std::collections::HashMap; use std::collections::HashSet; use std::rc::Rc; @@ -161,13 +163,20 @@ impl LspResolver { self.jsr_resolver.as_ref().inspect(|r| r.did_cache()); } - pub async fn set_npm_package_reqs( + pub async fn set_npm_reqs( &self, - reqs: &[PackageReq], + reqs: &BTreeMap<Option<ModuleSpecifier>, BTreeSet<PackageReq>>, ) -> Result<(), AnyError> { + let reqs = reqs + .values() + .flatten() + .collect::<BTreeSet<_>>() + .into_iter() + .cloned() + .collect::<Vec<_>>(); if let Some(npm_resolver) = self.npm_resolver.as_ref() { if let Some(npm_resolver) = npm_resolver.as_managed() { - return npm_resolver.set_package_reqs(reqs).await; + return npm_resolver.set_package_reqs(&reqs).await; } } Ok(()) |