diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/lsp/documents.rs | 7 | ||||
-rw-r--r-- | cli/lsp/resolver.rs | 3 | ||||
-rw-r--r-- | cli/resolver.rs | 12 |
3 files changed, 14 insertions, 8 deletions
diff --git a/cli/lsp/documents.rs b/cli/lsp/documents.rs index 8a6e8b65b..df15bff2a 100644 --- a/cli/lsp/documents.rs +++ b/cli/lsp/documents.rs @@ -29,7 +29,6 @@ use deno_core::ModuleSpecifier; use deno_graph::source::ResolutionMode; use deno_graph::Resolution; use deno_runtime::deno_node; -use deno_runtime::deno_node::NodeResolutionMode; use deno_semver::jsr::JsrPackageReqReference; use deno_semver::npm::NpmPackageReqReference; use deno_semver::package::PackageReq; @@ -1295,11 +1294,7 @@ impl Documents { } if let Ok(npm_ref) = NpmPackageReqReference::from_specifier(specifier) { - return self.resolver.npm_to_file_url( - &npm_ref, - referrer, - NodeResolutionMode::Types, - ); + return self.resolver.npm_to_file_url(&npm_ref, referrer); } let Some(doc) = self.get(specifier) else { return Some((specifier.clone(), MediaType::from_specifier(specifier))); diff --git a/cli/lsp/resolver.rs b/cli/lsp/resolver.rs index 0f515060a..27c4f6acf 100644 --- a/cli/lsp/resolver.rs +++ b/cli/lsp/resolver.rs @@ -229,7 +229,6 @@ impl LspResolver { &self, req_ref: &NpmPackageReqReference, referrer: &ModuleSpecifier, - mode: NodeResolutionMode, ) -> Option<(ModuleSpecifier, MediaType)> { let node_resolver = self.node_resolver.as_ref()?; Some(NodeResolution::into_specifier_and_media_type( @@ -238,7 +237,7 @@ impl LspResolver { req_ref, &PermissionsContainer::allow_all(), referrer, - mode, + NodeResolutionMode::Types, ) .ok(), )) diff --git a/cli/resolver.rs b/cli/resolver.rs index 7e68a62e9..8fbacd8f1 100644 --- a/cli/resolver.rs +++ b/cli/resolver.rs @@ -677,6 +677,18 @@ impl Resolver for CliGraphResolver { } } } + } else if referrer.scheme() == "file" { + if let Some(node_resolver) = &self.node_resolver { + let node_result = node_resolver.resolve_if_in_npm_package( + specifier, + referrer, + to_node_mode(mode), + &PermissionsContainer::allow_all(), + ); + if let Some(Ok(Some(res))) = node_result { + return Ok(res.into_url()); + } + } } let specifier = result?; |