redux-tidy
Version:
Simple helpers to organize reducers
22 lines (19 loc) • 469 B
JavaScript
export const makeReducer = (name, initialState, transitions = {}) => (
state = initialState,
action = {}
) => {
const t = { ...transitions, name: () => name }
const fn = t[action.type]
if (!fn) {
return state
}
return fn(state, action)
}
export const organizeReducers = (reducers, func = false) =>
reducers.reduce(
(state, reducer) => ({
...state,
[reducer({}, { type: 'name' })]: (func && reducer) || reducer()
}),
{}
)