From 8c026dab92b20fea44bc66f84db48b885c7264d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Tue, 13 Dec 2022 02:52:10 +0100 Subject: feat: improve download progress bar (#16984) Co-authored-by: David Sherret --- cli/npm/cache.rs | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) (limited to 'cli/npm/cache.rs') diff --git a/cli/npm/cache.rs b/cli/npm/cache.rs index ad6ab9db2..952ee0285 100644 --- a/cli/npm/cache.rs +++ b/cli/npm/cache.rs @@ -409,26 +409,18 @@ impl NpmCache { ); } - let _guard = self.progress_bar.update(&dist.tarball); - let response = self.http_client.get(&dist.tarball).send().await?; - - if response.status() == 404 { - bail!("Could not find npm package tarball at: {}", dist.tarball); - } else if !response.status().is_success() { - let status = response.status(); - let maybe_response_text = response.text().await.ok(); - bail!( - "Bad response: {:?}{}", - status, - match maybe_response_text { - Some(text) => format!("\n\n{}", text), - None => String::new(), - } - ); - } else { - let bytes = response.bytes().await?; - - verify_and_extract_tarball(package, &bytes, dist, &package_folder) + let guard = self.progress_bar.update(&dist.tarball); + let maybe_bytes = self + .http_client + .download_with_progress(&dist.tarball, &guard) + .await?; + match maybe_bytes { + Some(bytes) => { + verify_and_extract_tarball(package, &bytes, dist, &package_folder) + } + None => { + bail!("Could not find npm package tarball at: {}", dist.tarball); + } } } -- cgit v1.2.3