import produce from "immer";
/**
* ----------------------------------------
* createReducer
* @param {Object} handlers
* @param {Object} init
* -------------------------------------s---
*/
export default function createReducer(handlers, init) {
return (state = init, action) => {
const { type, payload } = action;
const handler = handlers[type];
if (!handler) return state;
return produce(state, draft => {
handler(draft, payload);
});
};
}