UNPKG

taskon

Version:

A simple JavaScript/TypeScript tasks queue that supports dynamic concurrency control

27 lines 862 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MessageHub = void 0; class MessageHub { constructor() { this.listenerLookup = {}; } subscribe(key, listener) { if (!this.listenerLookup[key]) { this.listenerLookup[key] = []; } this.listenerLookup[key].push(listener); return () => this.unsubscribe(key, listener); } unsubscribe(key, listener) { const index = this.listenerLookup[key].indexOf(listener); this.listenerLookup[key].splice(index, 1); } publish(key, ...params) { if (this.listenerLookup[key]) { return Promise.all(this.listenerLookup[key].map((listener) => listener(...params))); } } } exports.MessageHub = MessageHub; exports.default = MessageHub; //# sourceMappingURL=message-hub.js.map