latus/packages/redux/src/effects.js

16 lines
408 B
JavaScript
Raw Normal View History

2020-12-20 12:10:56 -06:00
export default (latus) => {
const effects = latus.invokeFlat('@latus/redux/effects');
const effect = (store, action) => {
effects.forEach((map) => {
if (map[action.type]) {
map[action.type](store, action);
}
});
};
return (store) => (next) => (action) => {
const result = next(action);
setTimeout(() => effect(store, action, latus), 0);
return result;
};
};