UNPKG

redux-saga-watch-actions

Version:

Easily create watchers to map actions to sagas

36 lines (25 loc) 1.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.watchActions = exports.createWatcher = exports.watchNextAction = exports.combineSagas = void 0; var _effects = require("redux-saga/effects"); const combineSagas = (...sagas) => function* (...args) { yield (0, _effects.all)(sagas.map(saga => (0, _effects.fork)(saga, ...args))); }; exports.combineSagas = combineSagas; const watchNextAction = (actionType, saga) => function* (...args) { const action = yield (0, _effects.take)(actionType); if (typeof saga === 'function') { yield (0, _effects.fork)(saga, ...args.concat(action)); } }; exports.watchNextAction = watchNextAction; const createWatcher = (actionType, saga) => function* (...args) { yield (0, _effects.takeEvery)(actionType, saga, ...args); }; exports.createWatcher = createWatcher; const watchActions = (sagaMap = {}) => function* (...args) { yield (0, _effects.all)(Object.keys(sagaMap).map(actionType => createWatcher(actionType, sagaMap[actionType])(...args))); }; exports.watchActions = watchActions;