latus/packages/redux/src/effects.js
2020-12-27 19:16:29 -06:00

16 lines
408 B
JavaScript

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;
};
};