@drift-labs/common
Version:
Common functions for Drift
55 lines • 1.56 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.StrictEventEmitter = void 0;
class StrictEventEmitter {
constructor() {
this.listeners = {};
}
on(event, listener) {
if (!this.listeners[event]) {
this.listeners[event] = [];
}
this.listeners[event].push(listener);
}
off(event, listener) {
const eventListeners = this.listeners[event];
if (!eventListeners)
return;
const index = eventListeners.indexOf(listener);
if (index > -1) {
eventListeners.splice(index, 1);
}
if (eventListeners.length === 0) {
delete this.listeners[event];
}
}
once(event, listener) {
const onceWrapper = (params) => {
listener(params);
this.off(event, onceWrapper);
};
this.on(event, onceWrapper);
}
emit(event, params) {
const eventListeners = this.listeners[event];
if (!eventListeners)
return;
eventListeners.forEach((listener) => {
listener(params);
});
}
removeAllListeners(event) {
if (event) {
delete this.listeners[event];
}
else {
this.listeners = {};
}
}
listenerCount(event) {
const eventListeners = this.listeners[event];
return eventListeners ? eventListeners.length : 0;
}
}
exports.StrictEventEmitter = StrictEventEmitter;
//# sourceMappingURL=StrictEventEmitter.js.map
;