redux-modules
Version:
A library for defining clear, boilerplate free Redux reducers.
51 lines (35 loc) • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createActions = undefined;
var _createAction = require('./createAction');
var _createAction2 = _interopRequireDefault(_createAction);
var _camelCase = require('camel-case');
var _camelCase2 = _interopRequireDefault(_camelCase);
var _payloadPropchecker = require('./payloadPropchecker');
var _payloadPropchecker2 = _interopRequireDefault(_payloadPropchecker);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var parsePayloadErrors = function parsePayloadErrors(transformation, _ref) {
var payload = _ref.payload;
var meta = _ref.meta;
return {
payload: payload,
meta: meta,
error: payload instanceof Error
};
};
var generateAction = function generateAction(generatedActions, transformation) {
var action = transformation.action;
var _transformation$middl = transformation.middleware;
var middleware = _transformation$middl === undefined ? [] : _transformation$middl;
var camelizedActionName = (0, _camelCase2.default)(action);
var defaultMiddlewares = [(0, _payloadPropchecker2.default)(), parsePayloadErrors];
// eslint-disable-next-line no-param-reassign
generatedActions[camelizedActionName] = (0, _createAction2.default)(transformation, middleware.concat(defaultMiddlewares));
return generatedActions;
};
var createActions = exports.createActions = function createActions(transformations) {
return transformations.reduce(generateAction, {});
};
exports.default = createActions;