ts-action-immer
Version:
Immer-based reducer creators for Redux
8 lines (7 loc) • 318 B
JavaScript
import { produce } from "immer";
export function on(...args) {
const draftReducer = args.pop();
const reducer = (state, action) => produce(state, (draft) => draftReducer(draft, action));
const types = args.reduce((result, creator) => [...result, creator.type], []);
return { reducer, types };
}