UNPKG

@chiper-inc/ecommerce-lib

Version:
44 lines 1.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EventSender = void 0; class EventSender { constructor() { this.events = {}; } on(event, listener) { // get string value from enum event if (!this.events[event]) { this.events[event] = []; } this.events[event].push(listener); } emit(event, ...args) { if (this.events[event]) { for (const listener of this.events[event]) { listener(...args); } } } off(event, listener) { if (this.events[event]) { this.events[event] = this.events[event].filter((l) => l !== listener); } } removeAllListeners(event) { if (this.events[event]) { delete this.events[event]; } } removeAllListenersAllEvents() { this.events = {}; } once(event, listener) { const onceWrapper = (...args) => { listener(...args); this.off(event, onceWrapper); }; this.on(event, onceWrapper); } } exports.EventSender = EventSender; //# sourceMappingURL=event-sender.js.map