summaryrefslogtreecommitdiff
path: root/cli/lsp/resolver.rs
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2024-10-01 22:55:02 +0100
committerGitHub <noreply@github.com>2024-10-01 22:55:02 +0100
commit3881b7173445ab7f68ec94d5dedbb1cb1c1978ec (patch)
tree2683c9955f19c9e1d19af6a41ce75cab5b3570fa /cli/lsp/resolver.rs
parentf9300004152ba4b3d091beb04d74f37b3b8ec281 (diff)
feat(lsp): quick fix for @deno-types="npm:@types/*" (#25954)
Diffstat (limited to 'cli/lsp/resolver.rs')
-rw-r--r--cli/lsp/resolver.rs26
1 files changed, 23 insertions, 3 deletions
diff --git a/cli/lsp/resolver.rs b/cli/lsp/resolver.rs
index a5dfd25a6..c89273147 100644
--- a/cli/lsp/resolver.rs
+++ b/cli/lsp/resolver.rs
@@ -328,11 +328,11 @@ impl LspResolver {
) -> Option<(ModuleSpecifier, MediaType)> {
let resolver = self.get_scope_resolver(file_referrer);
let node_resolver = resolver.node_resolver.as_ref()?;
- Some(NodeResolution::into_specifier_and_media_type(
+ Some(NodeResolution::into_specifier_and_media_type(Some(
node_resolver
.resolve_req_reference(req_ref, referrer, NodeResolutionMode::Types)
- .ok(),
- ))
+ .ok()?,
+ )))
}
pub fn in_node_modules(&self, specifier: &ModuleSpecifier) -> bool {
@@ -373,6 +373,26 @@ impl LspResolver {
Some(NodeResolution::into_specifier_and_media_type(Some(resolution)).1)
}
+ pub fn is_bare_package_json_dep(
+ &self,
+ specifier_text: &str,
+ referrer: &ModuleSpecifier,
+ ) -> bool {
+ let resolver = self.get_scope_resolver(Some(referrer));
+ let Some(node_resolver) = resolver.node_resolver.as_ref() else {
+ return false;
+ };
+ node_resolver
+ .resolve_if_for_npm_pkg(
+ specifier_text,
+ referrer,
+ NodeResolutionMode::Types,
+ )
+ .ok()
+ .flatten()
+ .is_some()
+ }
+
pub fn get_closest_package_json(
&self,
referrer: &ModuleSpecifier,