UNPKG

fluorine-lib

Version:

Reactive state and side effect management for React using a single stream of actions

46 lines (32 loc) 1.23 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.createThunkMiddleware = createThunkMiddleware; var _map = require('rxjs/operator/map'); var map = _map.map; var _isObservable = require('../util/isObservable'); var isObservable = _interopRequireDefault(_isObservable).default; var _isPromise = require('../util/isPromise'); var isPromise = _interopRequireDefault(_isPromise).default; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function createThunkMiddleware() { for (var _len = arguments.length, extraArgs = Array(_len), _key = 0; _key < _len; _key++) { extraArgs[_key] = arguments[_key]; } return function (dispatcher) { return function (agenda) { return map.call(agenda, function (thunkish) { if (typeof thunkish === 'function') { var res = thunkish.apply(undefined, [dispatcher.next.bind(dispatcher), dispatcher.reduce.bind(dispatcher)].concat(extraArgs)); if (isObservable(res) || isPromise(res)) { dispatcher.next(res); } return null; } return thunkish; }); }; }; } exports.default = createThunkMiddleware();