UNPKG

1.01 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = void 0;
9
10var _swit = _interopRequireDefault(require("@sharyn/util/swit"));
11
12// flow-disable-next-line
13var createReducer = function createReducer() {
14 var cases = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
15 var initialState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
16 return function () {
17 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
18
19 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
20 type = _ref.type,
21 payload = _ref.payload;
22
23 return (0, _swit.default)(type, cases.map(function (c) {
24 return [c[0], function () {
25 return c[1](payload)(state);
26 }];
27 }), state);
28 };
29};
30
31var _default = createReducer;
32exports.default = _default;
\No newline at end of file