reedx
Version:
Like redux but with less code
19 lines (13 loc) • 495 B
JavaScript
import reduce from './utils/reduce'
const { assign, keys, values } = Object
const mountObject = (dispatch, actions) =>
reduce(keys(actions), (obj, key, idx) => {
const action = values(actions)[idx]
return assign(obj, {
[key]: (...args) => dispatch(action(...args))
})
}, {})
const handlersFrom = (...models) => (dispatch) =>
reduce(keys(models), (obj, key, idx) =>
assign(obj, mountObject(dispatch, values(models)[idx].actions)), {})
export default handlersFrom