typescript-assistant
Version:
Combines and integrates professional Typescript tools into your project
40 lines • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.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;
};
//# sourceMappingURL=bus.js.map