feat: improve download progress bar (#16984)

Co-authored-by: David Sherret <dsherret@gmail.com>
This commit is contained in:
Bartek Iwańczuk 2022-12-13 02:52:10 +01:00 committed by GitHub
parent 4a17c93088
commit 8c026dab92
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 852 additions and 306 deletions

View file

@ -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);
}
}
}