UNPKG

wix-style-react

Version:
43 lines 1.34 kB
export const eventManager = { list: new Map(), emitQueue: new Map(), on(event, callback) { this.list.has(event) || this.list.set(event, []); this.list.get(event).push(callback); return this; }, off(event, callback) { if (callback) { const cb = this.list.get(event).filter(c => c !== callback); this.list.set(event, cb); return this; } this.list.delete(event); return this; }, cancelEmit(event) { const timers = this.emitQueue.get(event); if (timers) { timers.forEach(clearTimeout); this.emitQueue.delete(event); } return this; }, emit(event, ...args) { this.list.has(event) && this.list.get(event).forEach((callback) => { if (process.env.NODE_ENV === 'test') { // @ts-ignore callback(...args); return; } const timer = setTimeout(() => { // @ts-ignore callback(...args); }, 0); this.emitQueue.has(event) || this.emitQueue.set(event, []); this.emitQueue.get(event).push(timer); }); }, }; //# sourceMappingURL=eventManager.js.map