UNPKG

balena-sdk

Version:
29 lines (28 loc) 884 B
"use strict"; 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;