Skip to content

Commit

Permalink
feat: Rename --unstable-hmr to --watch-hmr (#24975)
Browse files Browse the repository at this point in the history
This commit stabilizes HMR functionality and renames
`--unstable-hmr` to `--watch-hmr`. The `--unstable-hmr`
flag is still working, but hidden from the help output.
It will be removed in Deno 2.

Once #24958 lands
we should improve grouping of `--watch` and `--watch-hmr`
flags.
  • Loading branch information
bartlomieju authored Aug 11, 2024
1 parent b61fd62 commit 004b74c
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 8 deletions.
33 changes: 30 additions & 3 deletions cli/args/flags.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3604,8 +3604,10 @@ fn seed_arg() -> Arg {

fn hmr_arg(takes_files: bool) -> Arg {
let arg = Arg::new("hmr")
.long("unstable-hmr")
.help("UNSTABLE: Watch for file changes and hot replace modules")
.long("watch-hmr")
// NOTE(bartlomieju): compatibility with Deno pre-1.46
.alias("unstable-hmr")
.help("Watch for file changes and hot replace modules")
.conflicts_with("watch");

if takes_files {
Expand Down Expand Up @@ -5249,6 +5251,31 @@ mod tests {
}
);

let r = flags_from_vec(svec![
"deno",
"run",
"--watch-hmr",
"--no-clear-screen",
"script.ts"
]);
let flags = r.unwrap();
assert_eq!(
flags,
Flags {
subcommand: DenoSubcommand::Run(RunFlags {
script: "script.ts".to_string(),
watch: Some(WatchFlagsWithPaths {
hmr: true,
paths: vec![],
no_clear_screen: true,
exclude: vec![],
}),
}),
code_cache_enabled: true,
..Flags::default()
}
);

let r = flags_from_vec(svec![
"deno",
"run",
Expand Down Expand Up @@ -5277,7 +5304,7 @@ mod tests {
let r = flags_from_vec(svec![
"deno",
"run",
"--unstable-hmr=foo.txt",
"--watch-hmr=foo.txt",
"--no-clear-screen",
"script.ts"
]);
Expand Down
2 changes: 1 addition & 1 deletion cli/tools/run/hmr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ impl crate::worker::HmrRunner for HmrRunner {

// If after filtering there are no paths it means it's either a file
// we can't HMR or an external file that was passed explicitly to
// `--unstable-hmr=<file>` path.
// `--watch-hmr=<file>` path.
if filtered_paths.is_empty() {
let _ = self.watcher_communicator.force_restart();
continue;
Expand Down
8 changes: 4 additions & 4 deletions tests/integration/watcher_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1675,7 +1675,7 @@ console.log("Listening...")
let mut child = util::deno_cmd()
.current_dir(t.path())
.arg("run")
.arg("--unstable-hmr")
.arg("--watch-hmr")
.arg("--allow-net")
.arg("-L")
.arg("debug")
Expand Down Expand Up @@ -1748,7 +1748,7 @@ export function foo() {
let mut child = util::deno_cmd()
.current_dir(t.path())
.arg("run")
.arg("--unstable-hmr")
.arg("--watch-hmr")
.arg("-L")
.arg("debug")
.arg(&file_to_watch)
Expand Down Expand Up @@ -1806,7 +1806,7 @@ export function foo() {
let mut child = util::deno_cmd()
.current_dir(t.path())
.arg("run")
.arg("--unstable-hmr")
.arg("--watch-hmr")
.arg("-L")
.arg("debug")
.arg(&file_to_watch)
Expand Down Expand Up @@ -1871,7 +1871,7 @@ export function foo() {
let mut child = util::deno_cmd()
.current_dir(t.path())
.arg("run")
.arg("--unstable-hmr")
.arg("--watch-hmr")
.arg("-L")
.arg("debug")
.arg(&file_to_watch)
Expand Down

0 comments on commit 004b74c

Please sign in to comment.