@chiper-inc/ecommerce-lib
Version:
Chiper Inc Ecommerce Lib
44 lines • 1.19 kB
JavaScript
;
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