UNPKG

ts-action-immer

Version:

Immer-based reducer creators for Redux

23 lines (22 loc) 847 B
"use strict"; 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; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.on = void 0; var immer_1 = require("immer"); 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 immer_1.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 }; } exports.on = on;