summaryrefslogtreecommitdiff
path: root/cli/lsp/language_server.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-03-05 19:23:51 -0500
committerGitHub <noreply@github.com>2024-03-06 00:23:51 +0000
commit3eaf174bfc64b7c277899abd44ae3877538028df (patch)
tree6a99dfd592681ca4beac81aaa9e5115e3dd801d7 /cli/lsp/language_server.rs
parent3fd4b882a4bd0087ebf112615aafc314bb71e594 (diff)
fix(node): improve cjs tracking (#22673)
We were missing saying that a file is CJS when some Deno code imported from the node_modules directory at runtime.
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r--cli/lsp/language_server.rs27
1 files changed, 21 insertions, 6 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs
index b108eb54e..c22752e9e 100644
--- a/cli/lsp/language_server.rs
+++ b/cli/lsp/language_server.rs
@@ -121,6 +121,7 @@ use crate::npm::CliNpmResolverCreateOptions;
use crate::npm::CliNpmResolverManagedCreateOptions;
use crate::npm::CliNpmResolverManagedPackageJsonInstallerOption;
use crate::npm::CliNpmResolverManagedSnapshotOption;
+use crate::resolver::CliNodeResolver;
use crate::tools::fmt::format_file;
use crate::tools::fmt::format_parsed_source;
use crate::tools::upgrade::check_for_upgrades_for_lsp;
@@ -146,7 +147,7 @@ struct LspNpmServices {
/// Npm's search api.
search_api: CliNpmSearchApi,
/// Node resolver.
- node_resolver: Option<Arc<NodeResolver>>,
+ node_resolver: Option<Arc<CliNodeResolver>>,
/// Resolver for npm packages.
resolver: Option<Arc<dyn CliNpmResolver>>,
}
@@ -171,7 +172,7 @@ pub struct LanguageServer(Arc<tokio::sync::RwLock<Inner>>, CancellationToken);
#[derive(Clone, Debug)]
pub struct StateNpmSnapshot {
- pub node_resolver: Arc<NodeResolver>,
+ pub node_resolver: Arc<CliNodeResolver>,
pub npm_resolver: Arc<dyn CliNpmResolver>,
}
@@ -760,10 +761,18 @@ impl Inner {
.map(|resolver| resolver.clone_snapshotted())
.map(|resolver| {
let fs = Arc::new(deno_fs::RealFs);
- let node_resolver =
- Arc::new(NodeResolver::new(fs, resolver.clone().into_npm_resolver()));
- StateNpmSnapshot {
+ let node_resolver = Arc::new(NodeResolver::new(
+ fs.clone(),
+ resolver.clone().into_npm_resolver(),
+ ));
+ let cli_node_resolver = Arc::new(CliNodeResolver::new(
+ None,
+ fs,
node_resolver,
+ resolver.clone(),
+ ));
+ StateNpmSnapshot {
+ node_resolver: cli_node_resolver,
npm_resolver: resolver,
}
});
@@ -907,9 +916,15 @@ impl Inner {
self.config.maybe_node_modules_dir_path().cloned(),
)
.await;
- self.npm.node_resolver = Some(Arc::new(NodeResolver::new(
+ let node_resolver = Arc::new(NodeResolver::new(
Arc::new(deno_fs::RealFs),
npm_resolver.clone().into_npm_resolver(),
+ ));
+ self.npm.node_resolver = Some(Arc::new(CliNodeResolver::new(
+ None,
+ Arc::new(deno_fs::RealFs),
+ node_resolver,
+ npm_resolver.clone(),
)));
self.npm.resolver = Some(npm_resolver);