UNPKG

@rxx/core

Version:

React MVI micro framework.

105 lines 6.34 kB
"use strict"; /** * The MIT License (MIT) * Copyright (c) Taketoshi Aono * * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * @fileoverview * @author Taketoshi Aono */ Object.defineProperty(exports, "__esModule", { value: true }); var rxjs_1 = require("rxjs"); var emptySubject = new rxjs_1.Subject(); /** * Represent StateHandler response. */ var HandlerResponse = /** @class */ (function () { function HandlerResponse(streamCollection) { this.streamCollection = streamCollection; } /** * Get a subject by specify key. * @param key Subject name. * @returns Registered Subject. */ HandlerResponse.prototype.for = function (key) { if (!this.streamCollection.hasWithoutGlobal(key)) { return this.streamCollection.add(key); } return this.streamCollection.getWithoutGlobal(key); }; return HandlerResponse; }()); exports.HandlerResponse = HandlerResponse; /** * Hold Subject cache. */ var StreamStore = /** @class */ (function () { function StreamStore(subjectMap) { if (subjectMap === void 0) { subjectMap = {}; } this.subjectMap = subjectMap; } /** * @inheritDoc */ StreamStore.prototype.hasWithoutGlobal = function (key) { return !!this.subjectMap[key]; }; /** * @inheritDoc */ StreamStore.prototype.has = function (key) { return this.get(key).length > 0; }; /** * @inheritDoc */ StreamStore.prototype.getWithoutGlobal = function (key) { if (this.subjectMap[key]) { return this.subjectMap[key]; } return emptySubject; }; /** * @inheritDoc */ StreamStore.prototype.get = function (keySpace, create) { var _this = this; if (create === void 0) { create = false; } var ret = []; var _a = keySpace.split('::'), ns = _a[0], key = _a[1]; var globalKeys = ["*::" + key, ns + "::*"]; var globalBus = globalKeys .filter(function (key) { return !!_this.subjectMap[key]; }) .map(function (key) { return _this.subjectMap[key]; }); if (this.subjectMap[keySpace]) { ret.push(this.subjectMap[keySpace]); } else if (create) { ret.push(this.add(keySpace)); } if (globalBus.length) { return ret.concat(globalBus); } return ret; }; /** * @inheritDoc */ StreamStore.prototype.add = function (key) { return (this.subjectMap[key] = new rxjs_1.Subject()); }; return StreamStore; }()); exports.StreamStore = StreamStore; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oYW5kbGVyL2hhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRzs7QUFFSCw2QkFBeUQ7QUFPekQsSUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFPLEVBQUUsQ0FBQztBQUVuQzs7R0FFRztBQUNIO0lBQ0UseUJBQTJCLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBQUcsQ0FBQztJQUVqRTs7OztPQUlHO0lBQ0ksNkJBQUcsR0FBVixVQUFpQixHQUFXO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUF5QixHQUFHLENBQUMsQ0FBQztTQUMvRDtRQUVELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDSCxzQkFBQztBQUFELENBQUMsQUFmRCxJQWVDO0FBZlksMENBQWU7QUFpQjVCOztHQUVHO0FBQ0g7SUFDRSxxQkFBb0IsVUFBZ0Q7UUFBaEQsMkJBQUEsRUFBQSxlQUFnRDtRQUFoRCxlQUFVLEdBQVYsVUFBVSxDQUFzQztJQUFHLENBQUM7SUFFeEU7O09BRUc7SUFDSSxzQ0FBZ0IsR0FBdkIsVUFBd0IsR0FBVztRQUNqQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLHlCQUFHLEdBQVYsVUFBVyxHQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7T0FFRztJQUNJLHNDQUFnQixHQUF2QixVQUF3QixHQUFXO1FBQ2pDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0I7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSSx5QkFBRyxHQUFWLFVBQVcsUUFBZ0IsRUFBRSxNQUF1QjtRQUFwRCxpQkFrQkM7UUFsQjRCLHVCQUFBLEVBQUEsY0FBdUI7UUFDbEQsSUFBTSxHQUFHLEdBQW1CLEVBQUUsQ0FBQztRQUN6QixJQUFBLHlCQUFnQyxFQUEvQixVQUFFLEVBQUUsV0FBMkIsQ0FBQztRQUN2QyxJQUFNLFVBQVUsR0FBRyxDQUFDLFFBQU0sR0FBSyxFQUFLLEVBQUUsUUFBSyxDQUFDLENBQUM7UUFDN0MsSUFBTSxTQUFTLEdBQUcsVUFBVTthQUN6QixNQUFNLENBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxDQUFDLENBQUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBdEIsQ0FBc0IsQ0FBQzthQUNyQyxHQUFHLENBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxLQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFwQixDQUFvQixDQUFDLENBQUM7UUFDcEMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQ3JDO2FBQU0sSUFBSSxNQUFNLEVBQUU7WUFDakIsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDOUI7UUFFRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDcEIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzlCO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7O09BRUc7SUFDSSx5QkFBRyxHQUFWLFVBQWMsR0FBVztRQUN2QixPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLGNBQU8sRUFBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUNILGtCQUFDO0FBQUQsQ0FBQyxBQXpERCxJQXlEQztBQXpEWSxrQ0FBVyJ9