refer
Version:
redux-like library for handling global state on functional style
19 lines (16 loc) • 534 B
JavaScript
import createDispatch from './createDispatch'
import { isArr } from './types'
let combineHandlers = (...handlers) => handlers.reduce((rootHandler, handler) => {
if (isArr(handler)) {
handler = combineHandlers(...handler)
}
let dispatch = createDispatch(handler)
return Object.keys(handler).reduce((rootHandler, key) => {
if (!rootHandler[key]) {
rootHandler[key] = []
}
rootHandler[key].push(value => dispatch(key, value))
return rootHandler
}, rootHandler)
}, {})
export default combineHandlers