'use strict'; exports.__esModule = true; exports.runSaga = runSaga; var _utils = /*#__PURE__*/require('./utils'); var _proc = /*#__PURE__*/require('./proc'); var _proc2 = /*#__PURE__*/_interopRequireDefault(_proc); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var RUN_SAGA_SIGNATURE = 'runSaga(storeInterface, saga, ...args)'; var NON_GENERATOR_ERR = RUN_SAGA_SIGNATURE + ': saga argument must be a Generator function!'; function runSaga(storeInterface, saga) { for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { args[_key - 2] = arguments[_key]; } var iterator = void 0; if (_utils.is.iterator(storeInterface)) { if (process.env.NODE_ENV === 'development') { (0, _utils.log)('warn', 'runSaga(iterator, storeInterface) has been deprecated in favor of ' + RUN_SAGA_SIGNATURE); } iterator = storeInterface; storeInterface = saga; } else { (0, _utils.check)(saga, _utils.is.func, NON_GENERATOR_ERR); iterator = saga.apply(undefined, args); (0, _utils.check)(iterator, _utils.is.iterator, NON_GENERATOR_ERR); } var _storeInterface = storeInterface, subscribe = _storeInterface.subscribe, dispatch = _storeInterface.dispatch, getState = _storeInterface.getState, context = _storeInterface.context, sagaMonitor = _storeInterface.sagaMonitor, logger = _storeInterface.logger, onError = _storeInterface.onError; var effectId = (0, _utils.uid)(); if (sagaMonitor) { // monitors are expected to have a certain interface, let's fill-in any missing ones sagaMonitor.effectTriggered = sagaMonitor.effectTriggered || _utils.noop; sagaMonitor.effectResolved = sagaMonitor.effectResolved || _utils.noop; sagaMonitor.effectRejected = sagaMonitor.effectRejected || _utils.noop; sagaMonitor.effectCancelled = sagaMonitor.effectCancelled || _utils.noop; sagaMonitor.actionDispatched = sagaMonitor.actionDispatched || _utils.noop; sagaMonitor.effectTriggered({ effectId: effectId, root: true, parentEffectId: 0, effect: { root: true, saga: saga, args: args } }); } var task = (0, _proc2.default)(iterator, subscribe, (0, _utils.wrapSagaDispatch)(dispatch), getState, context, { sagaMonitor: sagaMonitor, logger: logger, onError: onError }, effectId, saga.name); if (sagaMonitor) { sagaMonitor.effectResolved(effectId, task); } return task; }