diff options
-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(); + } } |