UNPKG

react-application-core

Version:

A react-based application core for the business applications.

93 lines 3.81 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.entityReducerFactory = exports.composeReducers = exports.filterBySection = exports.filter = exports.reducerSectionFilter = void 0; var redux_1 = require("redux"); var R = require("ramda"); var util_1 = require("../util"); /** * @stable - 10.04.2018 * @param {string} customSection * @returns {FilterT} */ function reducerSectionFilter(customSection) { var section; return function (action) { return (!(section = util_1.Selectors.sectionFromAction(action)) || customSection === section); }; } exports.reducerSectionFilter = reducerSectionFilter; /** * @stable - 10.04.2018 * @param {Reducer<S>} reducer * @param {FilterT} filterObject * @returns {Reducer<S>} */ exports.filter = function (reducer, filterObject) { return function (state, action) { return (filterObject(action) ? reducer(state, action) : state); }; }; /** * @stable - 10.04.2018 * @param {Reducer<S>} reducer * @param {string} customSection * @returns {Reducer<S>} */ exports.filterBySection = function (reducer, customSection) { return exports.filter(reducer, reducerSectionFilter(customSection)); }; /** * @stable - 15.04.2018 * @param {TReducersMap} reducersMap * @returns {Reducer<ReducersMapObject>} */ exports.composeReducers = function (reducersMap) { return redux_1.combineReducers(reducersMap); }; /** * @deprecated Use makeEntityReducer * @param {string} updateActionType * @param {string} destroyActionType * @param {TPayload} initialState * @returns {(state: TPayload, action: AnyAction) => TPayload} */ exports.entityReducerFactory = function (updateActionType, destroyActionType, initialState) { if (initialState === void 0) { initialState = null; } return function (state, action) { if (state === void 0) { state = initialState; } switch (action.type) { case updateActionType: var payloadWrapper = action.data; var selectedWrapper = action.data; var replacedWrapper = action.data; var entity = util_1.coalesce(payloadWrapper.payload, selectedWrapper.selected, replacedWrapper.replaced); // selected === null or payload === null var defEntity = util_1.NvlUtils.coalesceDef(payloadWrapper.payload, selectedWrapper.selected, replacedWrapper.replaced); return R.isNil(entity) ? (util_1.TypeUtils.isUndef(defEntity) ? state : defEntity) : (util_1.TypeUtils.isPrimitive(entity) ? entity : (Array.isArray(entity) ? __spreadArrays(entity) : (R.isNil(replacedWrapper.replaced) ? __assign(__assign({}, state), entity) : util_1.CloneUtils.shallowClone(entity)))); case destroyActionType: return null; } return state; }; }; //# sourceMappingURL=store.support.js.map