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/standalone | |
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/standalone')
-rw-r--r-- | cli/standalone/binary.rs | 17 | ||||
-rw-r--r-- | cli/standalone/mod.rs | 8 |
2 files changed, 13 insertions, 12 deletions
diff --git a/cli/standalone/binary.rs b/cli/standalone/binary.rs index 042d3c3c6..00b8d19f3 100644 --- a/cli/standalone/binary.rs +++ b/cli/standalone/binary.rs @@ -40,7 +40,7 @@ use crate::args::PermissionFlags; use crate::args::UnstableConfig; use crate::cache::DenoDir; use crate::file_fetcher::FileFetcher; -use crate::http_util::HttpClient; +use crate::http_util::HttpClientProvider; use crate::npm::CliNpmResolver; use crate::npm::InnerCliNpmResolverRef; use crate::util::progress_bar::ProgressBar; @@ -417,9 +417,9 @@ pub fn unpack_into_dir( Ok(exe_path) } pub struct DenoCompileBinaryWriter<'a> { - file_fetcher: &'a FileFetcher, - client: &'a HttpClient, deno_dir: &'a DenoDir, + file_fetcher: &'a FileFetcher, + http_client_provider: &'a HttpClientProvider, npm_resolver: &'a dyn CliNpmResolver, npm_system_info: NpmSystemInfo, package_json_deps_provider: &'a PackageJsonDepsProvider, @@ -428,17 +428,17 @@ pub struct DenoCompileBinaryWriter<'a> { impl<'a> DenoCompileBinaryWriter<'a> { #[allow(clippy::too_many_arguments)] pub fn new( - file_fetcher: &'a FileFetcher, - client: &'a HttpClient, deno_dir: &'a DenoDir, + file_fetcher: &'a FileFetcher, + http_client_provider: &'a HttpClientProvider, npm_resolver: &'a dyn CliNpmResolver, npm_system_info: NpmSystemInfo, package_json_deps_provider: &'a PackageJsonDepsProvider, ) -> Self { Self { - file_fetcher, - client, deno_dir, + file_fetcher, + http_client_provider, npm_resolver, npm_system_info, package_json_deps_provider, @@ -536,7 +536,8 @@ impl<'a> DenoCompileBinaryWriter<'a> { let progress = progress_bars.update(&download_url); self - .client + .http_client_provider + .get_or_create()? .download_with_progress(download_url, None, &progress) .await? }; diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs index 8c268d928..92c061a99 100644 --- a/cli/standalone/mod.rs +++ b/cli/standalone/mod.rs @@ -15,7 +15,7 @@ use crate::args::StorageKeyResolver; use crate::cache::Caches; use crate::cache::DenoDirProvider; use crate::cache::NodeAnalysisCache; -use crate::http_util::HttpClient; +use crate::http_util::HttpClientProvider; use crate::node::CliCjsCodeAnalyzer; use crate::npm::create_cli_npm_resolver; use crate::npm::CliNpmResolverByonmCreateOptions; @@ -346,7 +346,7 @@ pub async fn run( cell: Default::default(), }); let progress_bar = ProgressBar::new(ProgressBarStyle::TextOnly); - let http_client = Arc::new(HttpClient::new( + let http_client_provider = Arc::new(HttpClientProvider::new( Some(root_cert_store_provider.clone()), metadata.unsafely_ignore_certificate_errors.clone(), )); @@ -390,7 +390,7 @@ pub async fn run( snapshot: CliNpmResolverManagedSnapshotOption::Specified(Some(snapshot)), maybe_lockfile: None, fs: fs.clone(), - http_client: http_client.clone(), + http_client_provider: http_client_provider.clone(), npm_global_cache_dir, cache_setting, text_only_progress_bar: progress_bar, @@ -448,7 +448,7 @@ pub async fn run( snapshot: CliNpmResolverManagedSnapshotOption::Specified(None), maybe_lockfile: None, fs: fs.clone(), - http_client: http_client.clone(), + http_client_provider: http_client_provider.clone(), npm_global_cache_dir, cache_setting, text_only_progress_bar: progress_bar, |