UNPKG

attadux

Version:

Implementation of the redux-modular-ducks, forked from the extensible-duck implementation and extended to include spected validators, state machines, helpers, web workers, effect handling, action multipliers, action enhancers, action throttling/debouncing

44 lines (34 loc) 1.5 kB
'use strict'; exports.__esModule = true; var _unnest = require('ramda/src/unnest'); var _unnest2 = _interopRequireDefault(_unnest); var _is = require('ramda/src/is'); var _is2 = _interopRequireDefault(_is); var _curry = require('ramda/src/curry'); var _curry2 = _interopRequireDefault(_curry); var _is3 = require('../util/is'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } exports['default'] = (0, _curry2['default'])(function (logger, multipliers, dispatch, action) { multipliers.filter(function (multiplierMap) { return multiplierMap[action.type]; }).forEach(function (multiplierMap) { try { var fanout = multiplierMap[action.type]; var nextActions = fanout(action); if ((0, _is2['default'])(Array, nextActions)) { (0, _unnest2['default'])(nextActions).filter(function (na) { return (0, _is3.isAction)(na) && na.type !== action.type; }).forEach(function (nextAction) { try { dispatch(nextAction); } catch (err) { logger.error('Unable to dispatch action: "' + nextAction.type + '", multiplied from "' + action.type + '"', err); } }); } } catch (error) { logger.error('Unable to multiply action: "' + action.type + '"', error); } }); return action; });