UNPKG

redux-codi

Version:

Redux middleware with dependency injection and async control flow

43 lines (34 loc) 1.4 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 _co = require('co'); var _co2 = _interopRequireDefault(_co); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var mergeResults = function mergeResults() { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return function (result, fn) { return _extends({}, result, fn.apply(undefined, args)); }; }; exports.default = function () { for (var _len2 = arguments.length, injectors = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { injectors[_key2] = arguments[_key2]; } return function (_ref) { var dispatch = _ref.dispatch; var getState = _ref.getState; return function (next) { return function (action) { if (typeof action === 'function') { var defaultProps = { dispatch: dispatch, getState: getState }; return (0, _co2.default)(action, injectors.reduce(mergeResults(defaultProps), defaultProps)); } return next(action); }; }; }; };