UNPKG

@sphereon/ssi-sdk-web3.headless-provider

Version:

44 lines 1.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EventEmitter = void 0; class EventEmitter { constructor() { this.listeners = Object.create(null); } emit(eventName, ...args) { var _a; (_a = this.listeners[eventName]) === null || _a === void 0 ? void 0 : _a.forEach((listener) => { listener(...args); }); return true; } on(eventName, listener) { var _a, _b; var _c; (_a = (_c = this.listeners)[eventName]) !== null && _a !== void 0 ? _a : (_c[eventName] = []); (_b = this.listeners[eventName]) === null || _b === void 0 ? void 0 : _b.push(listener); return this; } off(eventName, listener) { var _a; const listeners = (_a = this.listeners[eventName]) !== null && _a !== void 0 ? _a : []; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore for (const [i, listener_] of listeners.entries()) { if (listener === listener_) { listeners.splice(i, 1); break; } } return this; } once(eventName, listener) { const cb = (...args) => { this.off(eventName, cb); listener(...args); }; return this.on(eventName, cb); } } exports.EventEmitter = EventEmitter; //# sourceMappingURL=event-emitter.js.map