diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2024-03-05 19:23:51 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-06 00:23:51 +0000 |
commit | 3eaf174bfc64b7c277899abd44ae3877538028df (patch) | |
tree | 6a99dfd592681ca4beac81aaa9e5115e3dd801d7 /cli/lsp/language_server.rs | |
parent | 3fd4b882a4bd0087ebf112615aafc314bb71e594 (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.rs | 27 |
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); |