UNPKG

syncable-server

Version:
36 lines 1.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); class ObjectQueue { constructor() { this.channelToPendingObjectsMap = new Map(); } add(object) { let channel = this.resolveChannel(object); let pendingObjects = this.channelToPendingObjectsMap.get(channel); if (pendingObjects) { pendingObjects.push(object); } else { this.emit(object); } } pause(channel) { if (!this.channelToPendingObjectsMap.has(channel)) { this.channelToPendingObjectsMap.set(channel, []); } } resume(channel, filter) { let pendingObjects = this.channelToPendingObjectsMap.get(channel); if (!pendingObjects) { return; } for (let object of pendingObjects) { if (!filter || filter(object)) { this.emit(object); } } this.channelToPendingObjectsMap.delete(channel); } } exports.ObjectQueue = ObjectQueue; //# sourceMappingURL=object-queue.js.map