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; + } }