UNPKG

whale-plus

Version:

A Component Library for Vue 3

40 lines (36 loc) 886 B
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); 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); }); } } exports.EventEmitter = EventEmitter; //# sourceMappingURL=EventEmitter.js.map