diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-04-17 15:36:23 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-17 15:36:23 -0400 |
commit | d2d62b6312f9c09f91e26acd0b4d88b3ddcf94cf (patch) | |
tree | f2f5f0eb14e76e38876b3c219c859405fa664aef /cli/lsp/language_server.rs | |
parent | 559a61b879366c01fbbc078c03743cd836189ae7 (diff) |
refactor(npm): add CliNodeResolver (#18742)
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r-- | cli/lsp/language_server.rs | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index 3f395f410..239ff8a6e 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -78,6 +78,7 @@ use crate::file_fetcher::FileFetcher; use crate::graph_util; use crate::http_util::HttpClient; use crate::lsp::urls::LspUrlKind; +use crate::node::CliNodeResolver; use crate::npm::create_npm_fs_resolver; use crate::npm::CliNpmRegistryApi; use crate::npm::NpmCache; @@ -101,6 +102,7 @@ pub struct StateSnapshot { pub cache_metadata: cache::CacheMetadata, pub documents: Documents, pub maybe_import_map: Option<Arc<ImportMap>>, + pub maybe_node_resolver: Option<Arc<CliNodeResolver>>, pub maybe_npm_resolver: Option<Arc<NpmPackageResolver>>, } @@ -695,30 +697,32 @@ impl Inner { } pub fn snapshot(&self) -> Arc<StateSnapshot> { + // create a new snapshotted npm resolution and resolver + let npm_resolution = Arc::new(NpmResolution::new( + self.npm_api.clone(), + self.npm_resolution.snapshot(), + None, + )); + let npm_resolver = Arc::new(NpmPackageResolver::new( + npm_resolution.clone(), + create_npm_fs_resolver( + self.npm_cache.clone(), + &ProgressBar::new(ProgressBarStyle::TextOnly), + self.npm_api.base_url().clone(), + npm_resolution.clone(), + None, + ), + None, + )); + let node_resolver = + Arc::new(CliNodeResolver::new(npm_resolution, npm_resolver.clone())); Arc::new(StateSnapshot { assets: self.assets.snapshot(), cache_metadata: self.cache_metadata.clone(), documents: self.documents.clone(), maybe_import_map: self.maybe_import_map.clone(), - maybe_npm_resolver: Some({ - // create a new snapshotted npm resolution and resolver - let resolution = Arc::new(NpmResolution::new( - self.npm_api.clone(), - self.npm_resolution.snapshot(), - None, - )); - Arc::new(NpmPackageResolver::new( - resolution.clone(), - create_npm_fs_resolver( - self.npm_cache.clone(), - &ProgressBar::new(ProgressBarStyle::TextOnly), - self.npm_api.base_url().clone(), - resolution, - None, - ), - None, - )) - }), + maybe_node_resolver: Some(node_resolver), + maybe_npm_resolver: Some(npm_resolver), }) } |