From 7787a6f23bb11e2620cc1c1c6582cc48f308b881 Mon Sep 17 00:00:00 2001 From: Silvano Cerza Date: Thu, 9 Jan 2025 10:11:53 +0100 Subject: [PATCH] Add method to flush file events --- src/events/handler.ts | 7 +++++++ src/events/queue.ts | 12 ++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/events/handler.ts b/src/events/handler.ts index 3c16499..447bd57 100644 --- a/src/events/handler.ts +++ b/src/events/handler.ts @@ -21,6 +21,13 @@ export default class EventsHandler { this.vault.on("rename", this.onRename.bind(this)); } + /** + * Returns and empties the events queue. + */ + flush(): Event[] { + return this.eventsQueue.flush(); + } + private async onCreate(file: TAbstractFile) { if (!file.path.startsWith(this.localContentDir)) { // The file has not been created in directory that we're syncing with GitHub diff --git a/src/events/queue.ts b/src/events/queue.ts index 6dbbdff..28ef123 100644 --- a/src/events/queue.ts +++ b/src/events/queue.ts @@ -44,4 +44,16 @@ export default class EventsQueue { this.eventsQueue.set(event.filePath, event); } } + + /** + * Returns and empties the events queue. + */ + flush(): Event[] { + const events: Event[] = []; + this.eventsQueue.forEach((event) => { + events.push(event); + }); + this.eventsQueue.clear(); + return events; + } }