summaryrefslogtreecommitdiff
path: root/cli/npm/cache.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2022-12-13 02:52:10 +0100
committerGitHub <noreply@github.com>2022-12-12 20:52:10 -0500
commit8c026dab92b20fea44bc66f84db48b885c7264d1 (patch)
tree884704fb4721c9e227859451e58f524ace0a2261 /cli/npm/cache.rs
parent4a17c930882c5765e5fdedb50b6493469f61e32d (diff)
feat: improve download progress bar (#16984)
Co-authored-by: David Sherret <dsherret@gmail.com>
Diffstat (limited to 'cli/npm/cache.rs')
-rw-r--r--cli/npm/cache.rs32
1 files changed, 12 insertions, 20 deletions
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);
+ }
}
}