summaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
authorMarvin Hagemeister <marvin@deno.com>2024-08-07 18:15:57 +0200
committerGitHub <noreply@github.com>2024-08-07 18:15:57 +0200
commit9d6da1036d80a29862f6bdfb51e6f51eee235c35 (patch)
tree4797a9b4e31337ae171f6c6de83c6db2d15da976 /runtime
parent59c9bd08000b72e01b1a4506edc9954183e886a0 (diff)
fix: `rename` watch event missing (#24893)
This PR ensures that we forward a `rename` event in our file watcher. The rust lib we use combines that with the `modify` event. This fixes a compatibility issue with Node too, which sends the `rename` event as well. Fixes https://github.com/denoland/deno/issues/24880
Diffstat (limited to 'runtime')
-rw-r--r--runtime/ops/fs_events.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/runtime/ops/fs_events.rs b/runtime/ops/fs_events.rs
index 367866162..58fe9d5fd 100644
--- a/runtime/ops/fs_events.rs
+++ b/runtime/ops/fs_events.rs
@@ -14,6 +14,7 @@ use deno_core::op2;
use deno_permissions::PermissionsContainer;
use notify::event::Event as NotifyEvent;
+use notify::event::ModifyKind;
use notify::Error as NotifyError;
use notify::EventKind;
use notify::RecommendedWatcher;
@@ -71,7 +72,13 @@ impl From<NotifyEvent> for FsEvent {
EventKind::Any => "any",
EventKind::Access(_) => "access",
EventKind::Create(_) => "create",
- EventKind::Modify(_) => "modify",
+ EventKind::Modify(modify_kind) => match modify_kind {
+ ModifyKind::Name(_) => "rename",
+ ModifyKind::Any
+ | ModifyKind::Data(_)
+ | ModifyKind::Metadata(_)
+ | ModifyKind::Other => "modify",
+ },
EventKind::Remove(_) => "remove",
EventKind::Other => "other",
};