@aviarytech/didcomm-messaging
Version:
DIDComm Messaging library for sending and receiving DIDComm messages
34 lines • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EventBus = void 0;
class EventBus {
constructor() {
this.subscribers = {};
}
dispatch(event, arg) {
const subscriber = this.subscribers[event];
if (subscriber === undefined) {
return;
}
Object.keys(subscriber).forEach((key) => subscriber[key].handle(arg));
}
register(event, callbackClass) {
const id = this.getNextId();
if (!this.subscribers[event])
this.subscribers[event] = {};
this.subscribers[event][id] = callbackClass;
return {
unregister: () => {
delete this.subscribers[event][id];
if (Object.keys(this.subscribers[event]).length === 0)
delete this.subscribers[event];
},
};
}
getNextId() {
return EventBus.nextId++;
}
}
exports.EventBus = EventBus;
EventBus.nextId = 0;
//# sourceMappingURL=event-bus.js.map