typescript-assistant
Version:
Combines and integrates professional Typescript tools into your project
42 lines • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createBus = void 0;
let createBus = () => {
let allSubscribers = {};
let bus = {
signal: (eventType) => {
let subscribers = allSubscribers[eventType];
if (subscribers) {
subscribers.forEach((s) => s());
}
},
report: (report) => {
let subscribers = allSubscribers["report"];
if (subscribers) {
subscribers.forEach((s) => s(report));
}
},
register: (type, callback) => {
let subscribers = allSubscribers[type];
if (!subscribers) {
subscribers = allSubscribers[type] = [];
}
subscribers.push(callback);
},
registerAll: (types, callback) => {
types.forEach((type) => bus.register(type, callback));
},
unregister: (callback) => {
Object.keys(allSubscribers).forEach((eventType) => {
let subscribers = allSubscribers[eventType];
let index = subscribers.indexOf(callback);
if (index >= 0) {
subscribers.splice(index, 1);
}
});
},
};
return bus;
};
exports.createBus = createBus;
//# sourceMappingURL=bus.js.map