UNPKG

redux-boost

Version:
80 lines (60 loc) 2.87 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.requestsReducer = exports.defaultRequestState = undefined; var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray'); var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _extends3 = require('babel-runtime/helpers/extends'); var _extends4 = _interopRequireDefault(_extends3); var _createReducer; var _reduxYo = require('redux-yo'); var _utils = require('../utils'); var _actions = require('./actions'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var initialState = { errors: [] }; var defaultRequestState = exports.defaultRequestState = { loading: false, success: false, result: undefined, error: undefined }; var requestsReducer = exports.requestsReducer = (0, _reduxYo.createReducer)((_createReducer = {}, (0, _defineProperty3.default)(_createReducer, _actions.requestActions.fetchStart, function (state, _ref) { var name = _ref.name; return (0, _utils.merge)(state, (0, _defineProperty3.default)({}, name, (0, _extends4.default)({}, defaultRequestState, state[name], { loading: true }))); }), (0, _defineProperty3.default)(_createReducer, _actions.requestActions.fetchSuccess, function (state, payload) { var name = payload.name, result = payload.result, saveRequestResult = payload.saveRequestResult; if (name) { return (0, _utils.update)(state, { $merge: (0, _defineProperty3.default)({}, name, (0, _extends4.default)({}, defaultRequestState, saveRequestResult && { result: result }, { success: true })) }); } return state; }), (0, _defineProperty3.default)(_createReducer, _actions.requestActions.fetchFail, function (state, _ref2) { var _extends2; var name = _ref2.name, error = _ref2.error; return (0, _extends4.default)({}, state, (_extends2 = {}, (0, _defineProperty3.default)(_extends2, name, (0, _extends4.default)({}, defaultRequestState, { data: state[name].data, error: error })), (0, _defineProperty3.default)(_extends2, 'errors', [error].concat((0, _toConsumableArray3.default)(state.errors.slice(0, 4)))), _extends2)); }), (0, _defineProperty3.default)(_createReducer, _actions.requestActions.resetRequest, function (state, name) { return (0, _utils.merge)(state, (0, _defineProperty3.default)({}, name, defaultRequestState)); }), (0, _defineProperty3.default)(_createReducer, _actions.requestActions.resetRequests, function (state, names) { return (0, _utils.merge)(state, names.reduce(function (acc, name) { acc[name] = defaultRequestState; return acc; }, {})); }), _createReducer), initialState);