UNPKG

@wordpress/redux-routine

Version:
37 lines (35 loc) 1.32 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = createMiddleware; var _isGenerator = _interopRequireDefault(require("./is-generator")); var _runtime = _interopRequireDefault(require("./runtime")); /** * Internal dependencies */ /** * Creates a Redux middleware, given an object of controls where each key is an * action type for which to act upon, the value a function which returns either * a promise which is to resolve when evaluation of the action should continue, * or a value. The value or resolved promise value is assigned on the return * value of the yield assignment. If the control handler returns undefined, the * execution is not continued. * * @param {Record<string, (value: import('redux').AnyAction) => Promise<boolean> | boolean>} controls Object of control handlers. * * @return {import('redux').Middleware} Co-routine runtime */ function createMiddleware(controls = {}) { return store => { const runtime = (0, _runtime.default)(controls, store.dispatch); return next => action => { if (!(0, _isGenerator.default)(action)) { return next(action); } return runtime(action); }; }; } //# sourceMappingURL=index.js.map