UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

97 lines (96 loc) 2.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SubscriptionManager = void 0; var SubscriptionManager = (function () { function SubscriptionManager() { this._subscriptionsMap = new Map(); } Object.defineProperty(SubscriptionManager.prototype, "size", { get: function () { return this._subscriptionsMap.size; }, enumerable: false, configurable: true }); SubscriptionManager.prototype.has = function (key) { return this._subscriptionsMap.has(key); }; SubscriptionManager.prototype.get = function (key, mode) { switch (mode) { case void 0: return this._subscriptionsMap.get(key); case 'throw': { if (this._subscriptionsMap.has(key)) { return this._subscriptionsMap.get(key); } else { throw new Error(("Missing key: '").concat(key, "'")); } } default: throw new TypeError(("Unknown mode: '").concat(mode, "'")); } }; SubscriptionManager.prototype.set = function (key, subscription, mode) { if (mode === void 0) { mode = 'throw'; } if (this._subscriptionsMap.has(key)) { switch (mode) { case 'skip': break; case 'replace': this._subscriptionsMap.get(key).deactivate(); this._subscriptionsMap.set(key, subscription); break; case 'throw': throw new Error(("Already subscribed to: '").concat(key, "'")); default: throw new TypeError(("Unknown mode: '").concat(mode, "'")); } } else { this._subscriptionsMap.set(key, subscription); } return subscription; }; SubscriptionManager.prototype.delete = function (key) { if (this._subscriptionsMap.has(key)) { this._subscriptionsMap.get(key).deactivate(); } this._subscriptionsMap.delete(key); }; SubscriptionManager.prototype.clear = function () { this.deactivateAll(); this._subscriptionsMap.clear(); }; SubscriptionManager.prototype.activateAll = function () { var iterator = this._subscriptionsMap.values(); var result; while (!(result = iterator.next()).done) { result.value.activate(); } }; SubscriptionManager.prototype.deactivateAll = function () { var iterator = this._subscriptionsMap.values(); var result; while (!(result = iterator.next()).done) { result.value.deactivate(); } }; SubscriptionManager.prototype[Symbol.iterator] = function () { return this._subscriptionsMap[Symbol.iterator](); }; SubscriptionManager.prototype.entries = function () { return this._subscriptionsMap.entries(); }; SubscriptionManager.prototype.keys = function () { return this._subscriptionsMap.keys(); }; SubscriptionManager.prototype.values = function () { return this._subscriptionsMap.values(); }; return SubscriptionManager; })(); exports.SubscriptionManager = SubscriptionManager;