UNPKG

@harmowatch/ngx-redux-core

Version:

[![Join the chat at https://gitter.im/harmowatch/ngx-redux-core](https://badges.gitter.im/harmowatch/ngx-redux-core.svg)](https://gitter.im/harmowatch/ngx-redux-core?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

74 lines (73 loc) 6.05 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Injectable } from '@angular/core'; import { ReduxRegistry } from './redux-registry'; var ReduxReducerProvider = /** @class */ (function () { function ReduxReducerProvider() { this.stateProviders = {}; } Object.defineProperty(ReduxReducerProvider.prototype, "rootReducer", { get: /** * @return {?} */ function () { return this.reduce.bind(this); }, enumerable: true, configurable: true }); /** * @param {?} provider * @return {?} */ ReduxReducerProvider.prototype.addStateProvider = /** * @param {?} provider * @return {?} */ function (provider) { if (!this.stateProviders[provider.name]) { ReduxRegistry.registerState(provider); this.stateProviders[provider.name] = provider; } else { throw new Error("State \"" + provider.name + "\" is registered twice! Make sure your state name is unique!"); } }; /** * @param {?} rootState * @param {?} action * @return {?} */ ReduxReducerProvider.prototype.reduce = /** * @param {?} rootState * @param {?} action * @return {?} */ function (rootState, action) { var _a; if (action.type === ReduxRegistry.ACTION_REGISTER_STATE) { /** @type {?} */ var regAction = (/** @type {?} */ ((action))); return tslib_1.__assign({}, rootState, (_a = {}, _a[regAction.payload.name] = regAction.payload.initialValue, _a)); } return Object.values(this.stateProviders).reduce(function (stateToReduce, provider) { var _a; return Object.assign({}, stateToReduce, (_a = {}, _a[provider.name] = provider.reduce(stateToReduce[provider.name], action), _a)); }, rootState); }; ReduxReducerProvider.decorators = [ { type: Injectable } ]; return ReduxReducerProvider; }()); export { ReduxReducerProvider }; if (false) { /** @type {?} */ ReduxReducerProvider.prototype.stateProviders; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdXgtcmVkdWNlci5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BoYXJtb3dhdGNoL25neC1yZWR1eC1jb3JlLyIsInNvdXJjZXMiOlsicHJvdmlkZXJzL3JlZHV4LXJlZHVjZXIucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBeUIsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs4QkFTbEUsRUFBRTs7MEJBRUssNkNBQVc7Ozs7O1lBQ3BCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Ozs7Ozs7OztJQUd6QiwrQ0FBZ0I7Ozs7Y0FBQyxRQUE0QjtRQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBRSxRQUFRLENBQUMsSUFBSSxDQUFFLEVBQUU7WUFDekMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUUsR0FBRyxRQUFRLENBQUM7U0FDakQ7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBVSxRQUFRLENBQUMsSUFBSSxpRUFBNkQsQ0FBQyxDQUFDO1NBQ3ZHOzs7Ozs7O0lBR0kscUNBQU07Ozs7O2NBQUMsU0FBeUIsRUFBRSxNQUFtQzs7UUFFMUUsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRTs7WUFDdkQsSUFBTSxTQUFTLEdBQUcsb0JBQUMsTUFBWSxHQUFrRCxDQUFDO1lBRWxGLDRCQUNLLFNBQVMsZUFDVixTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLFlBQVksT0FDMUQ7U0FDSDtRQUVELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQUMsYUFBYSxFQUFFLFFBQVE7O1lBQ3ZFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsYUFBYTtnQkFDcEMsR0FBRSxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUUsRUFBRSxNQUFNLENBQUM7b0JBQzFFLENBQUM7U0FDSixFQUFFLFNBQVMsQ0FBQyxDQUFDOzs7Z0JBbkNqQixVQUFVOzsrQkFSWDs7U0FTYSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJlZHVjZXIgfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgeyBSZWR1eFN0YXRlUHJvdmlkZXIgfSBmcm9tICcuL3JlZHV4LXN0YXRlLnByb3ZpZGVyJztcbmltcG9ydCB7IElSZWdpc3RlclN0YXRlUGF5bG9hZCwgUmVkdXhSZWdpc3RyeSB9IGZyb20gJy4vcmVkdXgtcmVnaXN0cnknO1xuaW1wb3J0IHsgUmVkdXhSb290U3RhdGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlZHV4LXJvb3Qtc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlZHV4QWN0aW9uV2l0aFBheWxvYWQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlZHV4LWFjdGlvbi13aXRoLXBheWxvYWQuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJlZHV4UmVkdWNlclByb3ZpZGVyIHtcblxuICBwcml2YXRlIHN0YXRlUHJvdmlkZXJzOiB7XG4gICAgW25hbWU6IHN0cmluZ106IFJlZHV4U3RhdGVQcm92aWRlcixcbiAgfSA9IHt9O1xuXG4gIHB1YmxpYyBnZXQgcm9vdFJlZHVjZXIoKTogUmVkdWNlcjxSZWR1eFJvb3RTdGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLnJlZHVjZS5iaW5kKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGFkZFN0YXRlUHJvdmlkZXIocHJvdmlkZXI6IFJlZHV4U3RhdGVQcm92aWRlcikge1xuICAgIGlmICghdGhpcy5zdGF0ZVByb3ZpZGVyc1sgcHJvdmlkZXIubmFtZSBdKSB7XG4gICAgICBSZWR1eFJlZ2lzdHJ5LnJlZ2lzdGVyU3RhdGUocHJvdmlkZXIpO1xuICAgICAgdGhpcy5zdGF0ZVByb3ZpZGVyc1sgcHJvdmlkZXIubmFtZSBdID0gcHJvdmlkZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU3RhdGUgXCIke3Byb3ZpZGVyLm5hbWV9XCIgaXMgcmVnaXN0ZXJlZCB0d2ljZSEgTWFrZSBzdXJlIHlvdXIgc3RhdGUgbmFtZSBpcyB1bmlxdWUhYCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZHVjZShyb290U3RhdGU6IFJlZHV4Um9vdFN0YXRlLCBhY3Rpb246IFJlZHV4QWN0aW9uV2l0aFBheWxvYWQ8YW55Pik6IFJlZHV4Um9vdFN0YXRlIHtcblxuICAgIGlmIChhY3Rpb24udHlwZSA9PT0gUmVkdXhSZWdpc3RyeS5BQ1RJT05fUkVHSVNURVJfU1RBVEUpIHtcbiAgICAgIGNvbnN0IHJlZ0FjdGlvbiA9IChhY3Rpb24gYXMge30gYXMgUmVkdXhBY3Rpb25XaXRoUGF5bG9hZDxJUmVnaXN0ZXJTdGF0ZVBheWxvYWQ+KTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucm9vdFN0YXRlLFxuICAgICAgICBbIHJlZ0FjdGlvbi5wYXlsb2FkLm5hbWUgXTogcmVnQWN0aW9uLnBheWxvYWQuaW5pdGlhbFZhbHVlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLnN0YXRlUHJvdmlkZXJzKS5yZWR1Y2UoKHN0YXRlVG9SZWR1Y2UsIHByb3ZpZGVyKSA9PiB7XG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGVUb1JlZHVjZSwge1xuICAgICAgICBbIHByb3ZpZGVyLm5hbWUgXTogcHJvdmlkZXIucmVkdWNlKHN0YXRlVG9SZWR1Y2VbIHByb3ZpZGVyLm5hbWUgXSwgYWN0aW9uKSxcbiAgICAgIH0pO1xuICAgIH0sIHJvb3RTdGF0ZSk7XG4gIH1cblxufVxuIl19