UNPKG

@e-group/redux-modules

Version:

eGroup team react-redux modules that share across projects.

97 lines (72 loc) 3.52 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.entities = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _toolkit = require("@reduxjs/toolkit"); var _immer = _interopRequireDefault(require("immer")); var _warning = _interopRequireDefault(require("warning")); var _lodash = _interopRequireDefault(require("lodash.assign")); var _lodash2 = _interopRequireDefault(require("lodash.mergewith")); var _getIn = _interopRequireDefault(require("@e-group/utils/getIn")); var _setIn = _interopRequireDefault(require("@e-group/utils/setIn")); var _types = require("./types"); var _merger = _interopRequireDefault(require("./merger")); var _utils = require("../utils"); const initialState = {}; /** * Reducer */ const entities = (0, _toolkit.createReducer)(initialState, { [_types.SET_ENTITIES]: (0, _immer.default)((draft, action) => { if (!action.payload) return; if (action.meta) { const _supportedTypes = (0, _utils.supportedTypes)(action.meta.path, ['array']), _supportedTypes2 = (0, _slicedToArray2.default)(_supportedTypes, 2), isSupported = _supportedTypes2[0], type = _supportedTypes2[1]; if (!isSupported) { (0, _warning.default)(false, "[@e-group/redux-modules] ERROR: Action \"setEntities\" is not supported \"".concat(type, "\" payload.")); return; } (0, _setIn.default)(draft, action.meta.path, (0, _lodash2.default)((0, _getIn.default)(draft, action.meta.path), action.payload, _merger.default)); } else { const _supportedTypes3 = (0, _utils.supportedTypes)(action.payload, ['object']), _supportedTypes4 = (0, _slicedToArray2.default)(_supportedTypes3, 2), isSupported = _supportedTypes4[0], type = _supportedTypes4[1]; if (!isSupported) { (0, _warning.default)(false, "[@e-group/redux-modules] ERROR: Action \"setEntities\" is not supported \"".concat(type, "\" payload.")); return; } (0, _lodash2.default)(draft, action.payload, _merger.default); } }), [_types.SET_ENTITIES_SHALLOW]: (0, _immer.default)((draft, action) => { if (!action.payload) return; if (action.meta) { const _supportedTypes5 = (0, _utils.supportedTypes)(action.meta.path, ['array']), _supportedTypes6 = (0, _slicedToArray2.default)(_supportedTypes5, 2), isSupported = _supportedTypes6[0], type = _supportedTypes6[1]; if (!isSupported) { (0, _warning.default)(false, "[@e-group/redux-modules] ERROR: Action \"setEntitiesShallow\" is not supported \"".concat(type, "\" payload.")); return; } (0, _setIn.default)(draft, action.meta.path, (0, _lodash.default)((0, _getIn.default)(draft, action.meta.path), action.payload)); } else { const _supportedTypes7 = (0, _utils.supportedTypes)(action.payload, ['object']), _supportedTypes8 = (0, _slicedToArray2.default)(_supportedTypes7, 2), isSupported = _supportedTypes8[0], type = _supportedTypes8[1]; if (!isSupported) { (0, _warning.default)(false, "[@e-group/redux-modules] ERROR: Action \"setEntities\" is not supported \"".concat(type, "\" payload.")); return; } (0, _lodash.default)(draft, action.payload); } }) }); exports.entities = entities;