UNPKG

@rxx/worker

Version:

React MVI micro framework.

77 lines 6.25 kB
"use strict"; /** * @fileoverview * @author Taketoshi Aono */ Object.defineProperty(exports, "__esModule", { value: true }); var rxjs_1 = require("rxjs"); var utils_1 = require("./utils"); var operators_1 = require("rxjs/operators"); var provisioning_1 = require("./provisioning"); var utils_2 = require("./utils"); var worker_1 = require("./worker"); function getDefaultName() { return 'AnonymousProvider'; } function makeApp(apps, initialStateFactory, otherProps) { if (otherProps === void 0) { otherProps = {}; } return function app(subject, states) { if (states === void 0) { states = {}; } var initialState; if (typeof initialStateFactory === 'function') { initialState = initialStateFactory(); } else { initialState = initialStateFactory; } var initializedMap = {}; return Object.keys(apps).reduce(function (states, key) { var app = apps[key]; var nextState = app(subject, initialState[key]); if (nextState.view) { if (!rxjs_1.isObservable(nextState.view)) { throw new Error("Application view of " + key + " must be Observable."); } nextState.view = nextState.view.pipe(operators_1.startWith(initialState[key])); if (!states.view) { states.view = {}; } if (!utils_1.isDefined(states.view[key])) { states.view[key] = nextState.view; } else { states.view[key] = rxjs_1.merge(states.view[key], nextState.view); } } for (var key_1 in nextState) { if (key_1 !== 'view') { if (!nextState[key_1] || !(nextState[key_1] instanceof rxjs_1.Observable)) { throw new Error("Property " + key_1 + " must be Observable."); } if (states[key_1]) { states[key_1] = rxjs_1.merge(states[key_1], nextState[key_1]); } else { states[key_1] = nextState[key_1]; } } } return states; }, states); }; } exports.makeApp = makeApp; function run(apps, initialStateFactory, otherProps) { if (otherProps === void 0) { otherProps = {}; } return worker_1.initWorker(new provisioning_1.Provisioning(otherProps.intent ? utils_2.isObject(otherProps.intent) ? otherProps.intent : { intent: otherProps.intent } : {}, otherProps.store ? Array.isArray(otherProps.store) ? otherProps.store : [otherProps.store] : [], makeApp(apps, initialStateFactory), otherProps.service, otherProps.stateHandlers || {})); } exports.run = run; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7O0FBRUgsNkJBQWdFO0FBQ2hFLGlDQUE0RDtBQUU1RCw0Q0FBZ0Q7QUFHaEQsK0NBQThDO0FBQzlDLGlDQUFtQztBQUVuQyxtQ0FBcUQ7QUFFckQsU0FBUyxjQUFjO0lBQ3JCLE9BQU8sbUJBQW1CLENBQUM7QUFDN0IsQ0FBQztBQVFELFNBQWdCLE9BQU8sQ0FTckIsSUFBTyxFQUNQLG1CQUEyQyxFQUMzQyxVQUF5QjtJQUF6QiwyQkFBQSxFQUFBLGFBQWdCLEVBQVM7SUFNekIsT0FBTyxTQUFTLEdBQUcsQ0FBQyxPQUF3QixFQUFFLE1BQWdCO1FBQWhCLHVCQUFBLEVBQUEsV0FBZ0I7UUFDNUQsSUFBSSxZQUE2QixDQUFDO1FBQ2xDLElBQUksT0FBTyxtQkFBbUIsS0FBSyxVQUFVLEVBQUU7WUFDN0MsWUFBWSxHQUFHLG1CQUFtQixFQUFFLENBQUM7U0FDdEM7YUFBTTtZQUNMLFlBQVksR0FBRyxtQkFBbUIsQ0FBQztTQUNwQztRQUNELElBQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUMxQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQUMsTUFBTSxFQUFFLEdBQUc7WUFDMUMsSUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLElBQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbEQsSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFO2dCQUNsQixJQUFJLENBQUMsbUJBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXVCLEdBQUcseUJBQXNCLENBQUMsQ0FBQztpQkFDbkU7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