diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2024-06-03 17:17:08 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-03 21:17:08 +0000 |
commit | 3341c50b6ae676cdc8f7b1c44221aa633f2bde68 (patch) | |
tree | e051e384d722403ea0a04402679a358ef61002dc /cli/lsp/resolver.rs | |
parent | 72088f2f52d65b2948155a11e7b56722bf6c10f9 (diff) |
refactor: don't share `reqwest::HttpClient` across tokio runtimes (#24092)
This also fixes several issues where we weren't properly creating http
clients with the user's settings.
Diffstat (limited to 'cli/lsp/resolver.rs')
-rw-r--r-- | cli/lsp/resolver.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/cli/lsp/resolver.rs b/cli/lsp/resolver.rs index 5c6708c79..599db4876 100644 --- a/cli/lsp/resolver.rs +++ b/cli/lsp/resolver.rs @@ -4,7 +4,7 @@ use crate::args::create_default_npmrc; use crate::args::package_json; use crate::args::CacheSetting; use crate::graph_util::CliJsrUrlProvider; -use crate::http_util::HttpClient; +use crate::http_util::HttpClientProvider; use crate::jsr::JsrCacheResolver; use crate::lsp::config::Config; use crate::lsp::config::ConfigData; @@ -82,12 +82,14 @@ impl LspResolver { pub async fn from_config( config: &Config, cache: &LspCache, - http_client: Option<&Arc<HttpClient>>, + http_client_provider: Option<&Arc<HttpClientProvider>>, ) -> Self { let config_data = config.tree.root_data(); let mut npm_resolver = None; let mut node_resolver = None; - if let (Some(http_client), Some(config_data)) = (http_client, config_data) { + if let (Some(http_client), Some(config_data)) = + (http_client_provider, config_data) + { npm_resolver = create_npm_resolver(config_data, cache, http_client).await; node_resolver = create_node_resolver(npm_resolver.as_ref()); } @@ -313,7 +315,7 @@ impl LspResolver { async fn create_npm_resolver( config_data: &ConfigData, cache: &LspCache, - http_client: &Arc<HttpClient>, + http_client_provider: &Arc<HttpClientProvider>, ) -> Option<Arc<dyn CliNpmResolver>> { let node_modules_dir = config_data .node_modules_dir @@ -326,7 +328,7 @@ async fn create_npm_resolver( }) } else { CliNpmResolverCreateOptions::Managed(CliNpmResolverManagedCreateOptions { - http_client: http_client.clone(), + http_client_provider: http_client_provider.clone(), snapshot: match config_data.lockfile.as_ref() { Some(lockfile) => { CliNpmResolverManagedSnapshotOption::ResolveFromLockfile( |