1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-21 15:04:11 -05:00

feat(watch): log which file changed on HMR or watch change (#25801)

Closes #25504
This commit is contained in:
HasanAlrimawi 2024-11-16 16:59:31 +02:00 committed by GitHub
parent 768c5ea2bb
commit abf06eb87f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 20 additions and 13 deletions

View file

@ -486,6 +486,7 @@ pub async fn run_benchmarks_with_watch(
), ),
move |flags, watcher_communicator, changed_paths| { move |flags, watcher_communicator, changed_paths| {
let bench_flags = bench_flags.clone(); let bench_flags = bench_flags.clone();
watcher_communicator.show_path_changed(changed_paths.clone());
Ok(async move { Ok(async move {
let factory = CliFactory::from_flags_for_watcher( let factory = CliFactory::from_flags_for_watcher(
flags, flags,

View file

@ -83,6 +83,7 @@ pub async fn format(
file_watcher::PrintConfig::new("Fmt", !watch_flags.no_clear_screen), file_watcher::PrintConfig::new("Fmt", !watch_flags.no_clear_screen),
move |flags, watcher_communicator, changed_paths| { move |flags, watcher_communicator, changed_paths| {
let fmt_flags = fmt_flags.clone(); let fmt_flags = fmt_flags.clone();
watcher_communicator.show_path_changed(changed_paths.clone());
Ok(async move { Ok(async move {
let factory = CliFactory::from_flags(flags); let factory = CliFactory::from_flags(flags);
let cli_options = factory.cli_options()?; let cli_options = factory.cli_options()?;

View file

@ -80,6 +80,7 @@ pub async fn lint(
file_watcher::PrintConfig::new("Lint", !watch_flags.no_clear_screen), file_watcher::PrintConfig::new("Lint", !watch_flags.no_clear_screen),
move |flags, watcher_communicator, changed_paths| { move |flags, watcher_communicator, changed_paths| {
let lint_flags = lint_flags.clone(); let lint_flags = lint_flags.clone();
watcher_communicator.show_path_changed(changed_paths.clone());
Ok(async move { Ok(async move {
let factory = CliFactory::from_flags(flags); let factory = CliFactory::from_flags(flags);
let cli_options = factory.cli_options()?; let cli_options = factory.cli_options()?;

View file

@ -124,7 +124,8 @@ async fn run_with_watch(
!watch_flags.no_clear_screen, !watch_flags.no_clear_screen,
), ),
WatcherRestartMode::Automatic, WatcherRestartMode::Automatic,
move |flags, watcher_communicator, _changed_paths| { move |flags, watcher_communicator, changed_paths| {
watcher_communicator.show_path_changed(changed_paths.clone());
Ok(async move { Ok(async move {
let factory = CliFactory::from_flags_for_watcher( let factory = CliFactory::from_flags_for_watcher(
flags, flags,

View file

@ -151,7 +151,8 @@ async fn serve_with_watch(
!watch_flags.no_clear_screen, !watch_flags.no_clear_screen,
), ),
WatcherRestartMode::Automatic, WatcherRestartMode::Automatic,
move |flags, watcher_communicator, _changed_paths| { move |flags, watcher_communicator, changed_paths| {
watcher_communicator.show_path_changed(changed_paths.clone());
Ok(async move { Ok(async move {
let factory = CliFactory::from_flags_for_watcher( let factory = CliFactory::from_flags_for_watcher(
flags, flags,

View file

@ -1661,6 +1661,7 @@ pub async fn run_tests_with_watch(
), ),
move |flags, watcher_communicator, changed_paths| { move |flags, watcher_communicator, changed_paths| {
let test_flags = test_flags.clone(); let test_flags = test_flags.clone();
watcher_communicator.show_path_changed(changed_paths.clone());
Ok(async move { Ok(async move {
let factory = CliFactory::from_flags_for_watcher( let factory = CliFactory::from_flags_for_watcher(
flags, flags,

View file

@ -127,19 +127,12 @@ impl PrintConfig {
} }
} }
fn create_print_after_restart_fn( fn create_print_after_restart_fn(clear_screen: bool) -> impl Fn() {
banner: &'static str,
clear_screen: bool,
) -> impl Fn() {
move || { move || {
#[allow(clippy::print_stderr)] #[allow(clippy::print_stderr)]
if clear_screen && std::io::stderr().is_terminal() { if clear_screen && std::io::stderr().is_terminal() {
eprint!("{}", CLEAR_SCREEN); eprint!("{}", CLEAR_SCREEN);
} }
info!(
"{} File change detected! Restarting!",
colors::intense_blue(banner),
);
} }
} }
@ -187,7 +180,15 @@ impl WatcherCommunicator {
} }
pub fn print(&self, msg: String) { pub fn print(&self, msg: String) {
log::info!("{} {}", self.banner, msg); log::info!("{} {}", self.banner, colors::gray(msg));
}
pub fn show_path_changed(&self, changed_paths: Option<Vec<PathBuf>>) {
if let Some(paths) = changed_paths {
self.print(
format!("Restarting! File change detected: {:?}", paths[0]).to_string(),
)
}
} }
} }
@ -263,7 +264,7 @@ where
clear_screen, clear_screen,
} = print_config; } = print_config;
let print_after_restart = create_print_after_restart_fn(banner, clear_screen); let print_after_restart = create_print_after_restart_fn(clear_screen);
let watcher_communicator = Arc::new(WatcherCommunicator { let watcher_communicator = Arc::new(WatcherCommunicator {
paths_to_watch_tx: paths_to_watch_tx.clone(), paths_to_watch_tx: paths_to_watch_tx.clone(),
changed_paths_rx: changed_paths_rx.resubscribe(), changed_paths_rx: changed_paths_rx.resubscribe(),

View file

@ -55,7 +55,7 @@ where
let mut str = String::new(); let mut str = String::new();
while let Some(t) = next_line(stderr_lines).await { while let Some(t) = next_line(stderr_lines).await {
let t = util::strip_ansi_codes(&t); let t = util::strip_ansi_codes(&t);
if t.starts_with("Watcher File change detected") { if t.starts_with("Watcher Restarting! File change detected") {
continue; continue;
} }
if t.starts_with("Watcher") { if t.starts_with("Watcher") {