UNPKG

redux-modules-middleware

Version:

A collection of common redux-module action middleware.

84 lines (66 loc) 2.8 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var defaultFormatter = function defaultFormatter(type, err) { return 'Warning: \'' + type + '\' failed payload typecheck: ' + err; }; function propCheck(payloadTypes) { var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return function (_ref) { var payload = _ref.payload, type = _ref.type, action = _objectWithoutProperties(_ref, ['payload', 'type']); var _params$logFunction = params.logFunction, logFunction = _params$logFunction === undefined ? console.warn : _params$logFunction, _params$formatter = params.formatter, formatter = _params$formatter === undefined ? defaultFormatter : _params$formatter; if (process.env.NODE_ENV === 'production') { return _extends({ payload: payload, type: type }, action); } if (!payloadTypes) { return _extends({ payload: payload, type: type }, action); } if (typeof _propTypes2.default.checkPropTypes === 'function') { // new api _propTypes2.default.checkPropTypes(payloadTypes, payload, 'prop', type); } else if (typeof payloadTypes === 'function') { // If payloadTypes is a propcheck function var result = payloadTypes({ payload: payload }, 'payload', type, 'prop') || {}; var message = result.message; if (message) { logFunction(formatter(type, message)); } } else { // If payloadTypes is an object (old API) var keys = Object.keys(payloadTypes); for (var i = 0; i < keys.length; i += 1) { var key = keys[i]; var propChecker = payloadTypes[key]; if (typeof propChecker !== 'undefined') { var _ref2 = propChecker(payload, key, type, 'prop') || {}, _message = _ref2.message; if (_message) { logFunction(formatter(type, _message)); } } } } return _extends({ payload: payload, type: type }, action); }; } exports.default = propCheck;