balena-sdk
Version:
The Balena JavaScript SDK
29 lines (28 loc) • 884 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PubSub = void 0;
class PubSub {
constructor() {
this.subscriptions = [];
this.subscribe = (eventName, fn) => {
const subscriptionInfo = {
eventName,
fn,
};
this.subscriptions.push(subscriptionInfo);
// an unsubscribe function
return () => {
const indexOfFn = this.subscriptions.indexOf(subscriptionInfo);
return this.subscriptions.splice(indexOfFn, 1);
};
};
this.publish = (eventName) => {
this.subscriptions.forEach((subscription) => {
if (eventName === subscription.eventName) {
subscription.fn();
}
});
};
}
}
exports.PubSub = PubSub;