UNPKG

ts-action-immer

Version:

Immer-based reducer creators for Redux

19 lines (18 loc) 728 B
var __spreadArray = (this && this.__spreadArray) || function (to, from) { for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) to[j] = from[i]; return to; }; import { produce } from "immer"; export function on() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var draftReducer = args.pop(); var reducer = function (state, action) { return produce(state, function (draft) { return draftReducer(draft, action); }); }; var types = args.reduce(function (result, creator) { return __spreadArray(__spreadArray([], result), [creator.type]); }, []); return { reducer: reducer, types: types }; }