UNPKG

whale-plus

Version:

A Component Library for Vue 3

36 lines (34 loc) 796 B
class EventEmitter { constructor() { this.events = /* @__PURE__ */ new Map(); } on(event, listener) { if (!this.events.has(event)) { this.events.set(event, /* @__PURE__ */ new Set()); } this.events.get(event).add(listener); } off(event, listener) { if (!this.events.has(event)) { return; } this.events.get(event).delete(listener); } once(event, listener) { const onceListener = (...args) => { listener(...args); this.off(event, onceListener); }; this.on(event, onceListener); } emit(event, ...args) { if (!this.events.has(event)) { return; } this.events.get(event).forEach((listener) => { listener(...args); }); } } export { EventEmitter }; //# sourceMappingURL=EventEmitter.mjs.map