redux-modules
Version:
A library for defining clear, boilerplate free Redux reducers.
43 lines (35 loc) • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var defaultOnError = function defaultOnError(err) {
// eslint-disable-next-line no-console
console.error('Warning: Failed payloadType:', err);
};
var propCheckedPayloadCreator = exports.propCheckedPayloadCreator = function propCheckedPayloadCreator() {
var onError = arguments.length <= 0 || arguments[0] === undefined ? defaultOnError : arguments[0];
return function (_ref, _ref2) {
var payloadTypes = _ref.payloadTypes;
var formattedConstant = _ref.formattedConstant;
var payload = _ref2.payload;
var meta = _ref2.meta;
if (typeof payloadTypes === 'undefined') {
return { payload: payload, meta: meta };
}
var keys = Object.keys(payloadTypes);
for (var i = 0; i < keys.length; ++i) {
var key = keys[i];
var propChecker = payloadTypes[key];
if (typeof propChecker === 'undefined') {
continue;
}
var _ref3 = propChecker(payload, key, formattedConstant, 'prop') || {};
var message = _ref3.message;
if (message) {
onError(message);
}
}
return { payload: payload, meta: meta };
};
};
exports.default = propCheckedPayloadCreator;