diff options
author | nasa <htilcs1115@gmail.com> | 2022-10-25 01:40:27 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-24 18:40:27 +0200 |
commit | 7a65b8e8dae8660f0e40130ba5a63f6c10d358c6 (patch) | |
tree | 252b6b577dcc3ef1e9958acfc68caf21e0b1628d | |
parent | 302590015d4f1b0e988ec345b4883f7cfcef7900 (diff) |
fix(cli): Fixed bug where the progress bar did not clear (#16401)
-rw-r--r-- | cli/proc_state.rs | 3 | ||||
-rw-r--r-- | cli/progress_bar.rs | 14 |
2 files changed, 16 insertions, 1 deletions
diff --git a/cli/proc_state.rs b/cli/proc_state.rs index 95520ffde..49ee5d8f4 100644 --- a/cli/proc_state.rs +++ b/cli/proc_state.rs @@ -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 { diff --git a/cli/progress_bar.rs b/cli/progress_bar.rs index 36cdff7c6..5b49fb279 100644 --- a/cli/progress_bar.rs +++ b/cli/progress_bar.rs @@ -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(); + } } |