ruddy
Version:
Modularized state-management tools for modern front-end applications. Manage dispatched messages in a clean and predictable way for either small or large scale projects
22 lines (19 loc) • 585 B
JavaScript
import _default from 'ramda/src/curry';
import { isPromise, isAction } from '../util/is';
export var resultHandler = _default(function (dispatch, action, result) {
if (isAction(result) && action.type !== result.type) {
dispatch(result);
}
});
export default _default(function (logger, effects, dispatch, action) {
var handleResult = resultHandler(dispatch, action);
effects.forEach(function (effect) {
var result = effect(action);
if (isPromise(result)) {
result.then(handleResult);
} else {
handleResult(result);
}
});
return action;
});