fix(cli): Fixed bug where the progress bar did not clear (#16401)

This commit is contained in:
nasa 2022-10-25 01:40:27 +09:00 committed by GitHub
parent 302590015d
commit 7a65b8e8da
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 1 deletions

View file

@ -292,6 +292,7 @@ impl ProcState {
dynamic_permissions: Permissions,
reload_on_watch: bool,
) -> Result<(), AnyError> {
let _pb_clear_guard = self.progress_bar.clear_guard();
let roots = roots
.into_iter()
.map(|s| (s, ModuleKind::Esm))
@ -412,7 +413,7 @@ impl ProcState {
self.prepare_node_std_graph().await?;
}
self.progress_bar.clear();
drop(_pb_clear_guard);
// type check if necessary
if self.options.type_check_mode() != TypeCheckMode::None {

View file

@ -126,4 +126,18 @@ impl ProgressBar {
inner.pb = None;
}
}
pub fn clear_guard(&self) -> ClearGuard {
ClearGuard { pb: self.clone() }
}
}
pub struct ClearGuard {
pb: ProgressBar,
}
impl Drop for ClearGuard {
fn drop(&mut self) {
self.pb.clear();
}
}