UNPKG

genji-core

Version:

The core lightweight library for genji, based on redux and redux-saga.

50 lines (38 loc) 1.21 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = createAsyncMiddleware; var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _invariant = _interopRequireDefault(require("invariant")); var _utils = require("./utils"); function createAsyncMiddleware() { var actions; function run(models) { actions = {}; for (var key in models) { var model = models[key]; for (var name in model) { var action = model[name]; (0, _invariant.default)((0, _utils.isFunction)(action), "[model.actions] action should be function, but got ".concat((0, _typeof2.default)(action))); actions[name] = action; } } } var asyncMiddleware = function asyncMiddleware(argv) { return function (next) { return function (action) { var type = action.type; var handler = actions[type]; if (handler) { return handler(action, argv); } else { return next(action); } }; }; }; asyncMiddleware.run = run; return asyncMiddleware; }