react-event-connector
Version:
A library to connect react components
41 lines (40 loc) • 1.62 kB
JavaScript
var EventConnector = /** @class */ (function () {
function EventConnector() {
this.subscribers = new Map();
}
EventConnector.getInstance = function () {
return EventConnector.instance;
};
EventConnector.prototype.subscribe = function (signalName, id, subscriber) {
if (!this.subscribers.has(signalName))
this.subscribers.set(signalName, []);
var subscribers = this.subscribers.get(signalName);
subscribers.push({ subscriber: subscriber, id: id });
};
EventConnector.prototype.emit = function (signalName) {
var _this = this;
return function (value) {
var subscribers = _this.subscribers.get(signalName);
if (!subscribers) {
console.warn("No subscribers found for signal: " + signalName);
return;
}
subscribers.forEach(function (s) { return s.subscriber(value); });
};
};
EventConnector.prototype.findSubscriber = function (signalName, id) {
var subscribers = this.subscribers.get(signalName);
if (!subscribers)
return null;
return subscribers.find(function (s) { return s.id === id; });
};
EventConnector.prototype.removeSubscriber = function (signalName, id) {
var subscribers = this.subscribers.get(signalName);
if (!subscribers)
return;
this.subscribers.set(signalName, subscribers.filter(function (s) { return s.id !== id; }));
};
EventConnector.instance = new EventConnector();
return EventConnector;
}());
export { EventConnector };