fix: preserve delivered folder reservations
This commit is contained in:
@@ -227,11 +227,14 @@ class FolderMonitor extends EventEmitter {
|
||||
const files = this._batchBuffer.splice(0);
|
||||
this._batchTimer = null;
|
||||
if (files.length === 0) return;
|
||||
const listenerError = this._emitEvent('new-files', [files], generation);
|
||||
const dispatchSeenReservations = new Set();
|
||||
for (const emittedPath of files) {
|
||||
const emittedNormalized = this._normalizePath(emittedPath);
|
||||
if (!this._batchSeenReservations.delete(emittedNormalized)) continue;
|
||||
if (listenerError) this._seenFiles.delete(emittedNormalized);
|
||||
if (this._batchSeenReservations.delete(emittedNormalized)) dispatchSeenReservations.add(emittedNormalized);
|
||||
}
|
||||
const listenerError = this._emitEvent('new-files', [files], generation);
|
||||
if (listenerError) {
|
||||
for (const emittedNormalized of dispatchSeenReservations) this._seenFiles.delete(emittedNormalized);
|
||||
}
|
||||
if (listenerError && this._acceptCallback(generation)) {
|
||||
this._lastError = 'Ordnerüberwachung fehlgeschlagen';
|
||||
|
||||
Reference in New Issue
Block a user