summaryrefslogtreecommitdiff
path: root/cli/lsp/resolver.rs
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2024-06-11 18:14:36 +0100
committerGitHub <noreply@github.com>2024-06-11 18:14:36 +0100
commit0c199acb88c085d30403fa2fd80b63f7994e2f10 (patch)
treea2ed5abcc7154ab210d5f720af1d106f9e2a2925 /cli/lsp/resolver.rs
parent68e18234264ce9e1670c7baa18d29accba949b34 (diff)
refactor(lsp): collect npm reqs by scope (#24172)
Diffstat (limited to 'cli/lsp/resolver.rs')
-rw-r--r--cli/lsp/resolver.rs15
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(())