@thecodingmachine/redux-toolkit-wrapper
Version:
[Redux-toolkit](https://redux-toolkit.js.org/) wrapper used to write less code regarding classic CRUD operations
52 lines (43 loc) • 1.65 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildAsyncReducers = buildAsyncReducers;
var _utils = require("../../utils");
function buildAsyncReducers(params) {
var _params$itemKey = params.itemKey,
itemKey = _params$itemKey === void 0 ? 'item' : _params$itemKey,
_params$loadingKey = params.loadingKey,
loadingKey = _params$loadingKey === void 0 ? 'loading' : _params$loadingKey,
_params$errorKey = params.errorKey,
errorKey = _params$errorKey === void 0 ? 'error' : _params$errorKey;
function pending(state, _ref) {
var type = _ref.type;
(0, _utils.stateKeysExists)(state, [loadingKey, errorKey], type);
(0, _utils.setNestedValue)(state, loadingKey, true);
(0, _utils.setNestedValue)(state, errorKey, null);
}
var fulfilled = function fulfilled(state, _ref2) {
var payload = _ref2.payload,
type = _ref2.type;
(0, _utils.stateKeysExists)(state, [loadingKey, errorKey], type);
if (itemKey) {
(0, _utils.stateKeyExists)(state, itemKey, type);
(0, _utils.setNestedValue)(state, itemKey, payload);
}
(0, _utils.setNestedValue)(state, loadingKey, false);
(0, _utils.setNestedValue)(state, errorKey, null);
};
var rejected = function rejected(state, _ref3) {
var payload = _ref3.payload,
type = _ref3.type;
(0, _utils.stateKeysExists)(state, [loadingKey, errorKey], type);
(0, _utils.setNestedValue)(state, loadingKey, false);
(0, _utils.setNestedValue)(state, errorKey, payload);
};
return {
pending: pending,
fulfilled: fulfilled,
rejected: rejected
};
}
;