riducers 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +21 -20
- package/dist/index.js.map +1 -1
- package/esm/index.js +19 -20
- package/esm/index.js.map +1 -1
- package/package.json +4 -1
- package/src/index.ts +13 -21
package/dist/index.js
CHANGED
|
@@ -36,9 +36,6 @@ const mapReplaceReducer = (state, action) => {
|
|
|
36
36
|
}
|
|
37
37
|
return state;
|
|
38
38
|
};
|
|
39
|
-
const mapClearReducer = () => {
|
|
40
|
-
return {};
|
|
41
|
-
};
|
|
42
39
|
const listInsertReducer = (state, action) => {
|
|
43
40
|
if (!state)
|
|
44
41
|
state = [];
|
|
@@ -72,6 +69,8 @@ const listSortReducer = (state, action) => {
|
|
|
72
69
|
const listDeleteReducer = (state, action) => {
|
|
73
70
|
if (!state)
|
|
74
71
|
state = [];
|
|
72
|
+
if (Array.isArray(state))
|
|
73
|
+
state = [...state];
|
|
75
74
|
let resp = Array.isArray(action.payload) ? action.payload : [action.payload];
|
|
76
75
|
let stateMap = state.map((s) => s[action.keyName]);
|
|
77
76
|
for (let i in resp) {
|
|
@@ -81,9 +80,6 @@ const listDeleteReducer = (state, action) => {
|
|
|
81
80
|
}
|
|
82
81
|
return state;
|
|
83
82
|
};
|
|
84
|
-
const listClearReducer = () => {
|
|
85
|
-
return [];
|
|
86
|
-
};
|
|
87
83
|
const listReplaceReducer = (state, action) => {
|
|
88
84
|
let resp = Array.isArray(action.payload) ? action.payload : [action.payload];
|
|
89
85
|
resp = resp.map((r) => Object.assign({}, r));
|
|
@@ -100,17 +96,26 @@ const objReplaceReducer = (state, action) => {
|
|
|
100
96
|
const objDeleteReducer = () => {
|
|
101
97
|
return null;
|
|
102
98
|
};
|
|
103
|
-
const objClearReducer = () => {
|
|
104
|
-
return null;
|
|
105
|
-
};
|
|
106
99
|
const OPS = ['insert', 'replace', 'delete', 'clear', 'sort'];
|
|
107
100
|
function reducerBuilder(key, opts) {
|
|
101
|
+
var _a;
|
|
102
|
+
let initialState = opts === null || opts === void 0 ? void 0 : opts.initialState;
|
|
103
|
+
let stateType = (_a = opts === null || opts === void 0 ? void 0 : opts.stateType) !== null && _a !== void 0 ? _a : 'static';
|
|
104
|
+
let isList = stateType === 'list';
|
|
105
|
+
let isMap = stateType === 'map';
|
|
106
|
+
if (initialState === undefined) {
|
|
107
|
+
if (isList)
|
|
108
|
+
initialState = [];
|
|
109
|
+
else if (isMap)
|
|
110
|
+
initialState = {};
|
|
111
|
+
else
|
|
112
|
+
initialState = null;
|
|
113
|
+
}
|
|
108
114
|
return (state, action) => {
|
|
109
|
-
|
|
110
|
-
let isMap = opts && (opts === null || opts === void 0 ? void 0 : opts.stateType) === 'map';
|
|
115
|
+
var _a, _b;
|
|
111
116
|
if (state === undefined) {
|
|
112
|
-
if (
|
|
113
|
-
return
|
|
117
|
+
if (initialState !== undefined)
|
|
118
|
+
return initialState;
|
|
114
119
|
else if (isList)
|
|
115
120
|
return [];
|
|
116
121
|
else if (isMap)
|
|
@@ -124,7 +129,7 @@ function reducerBuilder(key, opts) {
|
|
|
124
129
|
return state;
|
|
125
130
|
let op = m[1];
|
|
126
131
|
let payload = action.payload;
|
|
127
|
-
let keyName = (
|
|
132
|
+
let keyName = (_a = opts === null || opts === void 0 ? void 0 : opts.keyName) !== null && _a !== void 0 ? _a : "id";
|
|
128
133
|
if (isMap && !OPS.includes(op)) {
|
|
129
134
|
if (payload && !Array.isArray(payload)) {
|
|
130
135
|
payload[keyName] = op;
|
|
@@ -136,7 +141,7 @@ function reducerBuilder(key, opts) {
|
|
|
136
141
|
op = "delete";
|
|
137
142
|
}
|
|
138
143
|
}
|
|
139
|
-
let sort = action.sort
|
|
144
|
+
let sort = (_b = action.sort) !== null && _b !== void 0 ? _b : opts === null || opts === void 0 ? void 0 : opts.sort;
|
|
140
145
|
if (op === "insert") {
|
|
141
146
|
if (isList && payload)
|
|
142
147
|
return listInsertReducer(state, { payload, sort, keyName });
|
|
@@ -159,11 +164,7 @@ function reducerBuilder(key, opts) {
|
|
|
159
164
|
return objDeleteReducer();
|
|
160
165
|
}
|
|
161
166
|
else if (op === "clear") {
|
|
162
|
-
|
|
163
|
-
return listClearReducer();
|
|
164
|
-
else if (isMap)
|
|
165
|
-
return mapClearReducer();
|
|
166
|
-
return objClearReducer();
|
|
167
|
+
return initialState;
|
|
167
168
|
}
|
|
168
169
|
else if (op === "sort") {
|
|
169
170
|
if (isList)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAoBA,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,CAAW,EAAE,CAAW,EAAE,EAAE;IAC5D,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;SAChF,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvG,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,KAAe,EAAE,MAAkB,EAAE,EAAE;IAC/D,IAAI,CAAC,KAAK;QAAE,KAAK,GAAG,EAAE,CAAC;IACvB,IAAI,IAAI,GAAe,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzF,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACjC,KAAK,IAAI,CAAC,IAAI,IAAI,EAAE;QAClB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7D;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,KAAe,EAAE,MAAkB,EAAE,EAAE;IAC/D,IAAI,CAAC,KAAK;QAAE,KAAK,GAAG,EAAE,CAAC;IACvB,IAAI,IAAI,GAAe,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzF,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACjC,KAAK,IAAI,CAAC,IAAI,IAAI,EAAE;QAClB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;KACvC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,KAAe,EAAE,MAAkB,EAAE,EAAE;IAChE,KAAK,GAAG,EAAE,CAAC;IACX,IAAI,IAAI,GAAe,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzF,KAAK,IAAI,CAAC,IAAI,IAAI,EAAE;QAClB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7D;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAA;AAED,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/esm/index.js
CHANGED
|
@@ -33,9 +33,6 @@ const mapReplaceReducer = (state, action) => {
|
|
|
33
33
|
}
|
|
34
34
|
return state;
|
|
35
35
|
};
|
|
36
|
-
const mapClearReducer = () => {
|
|
37
|
-
return {};
|
|
38
|
-
};
|
|
39
36
|
const listInsertReducer = (state, action) => {
|
|
40
37
|
if (!state)
|
|
41
38
|
state = [];
|
|
@@ -69,6 +66,8 @@ const listSortReducer = (state, action) => {
|
|
|
69
66
|
const listDeleteReducer = (state, action) => {
|
|
70
67
|
if (!state)
|
|
71
68
|
state = [];
|
|
69
|
+
if (Array.isArray(state))
|
|
70
|
+
state = [...state];
|
|
72
71
|
let resp = Array.isArray(action.payload) ? action.payload : [action.payload];
|
|
73
72
|
let stateMap = state.map((s) => s[action.keyName]);
|
|
74
73
|
for (let i in resp) {
|
|
@@ -78,9 +77,6 @@ const listDeleteReducer = (state, action) => {
|
|
|
78
77
|
}
|
|
79
78
|
return state;
|
|
80
79
|
};
|
|
81
|
-
const listClearReducer = () => {
|
|
82
|
-
return [];
|
|
83
|
-
};
|
|
84
80
|
const listReplaceReducer = (state, action) => {
|
|
85
81
|
let resp = Array.isArray(action.payload) ? action.payload : [action.payload];
|
|
86
82
|
resp = resp.map((r) => Object.assign({}, r));
|
|
@@ -97,17 +93,24 @@ const objReplaceReducer = (state, action) => {
|
|
|
97
93
|
const objDeleteReducer = () => {
|
|
98
94
|
return null;
|
|
99
95
|
};
|
|
100
|
-
const objClearReducer = () => {
|
|
101
|
-
return null;
|
|
102
|
-
};
|
|
103
96
|
const OPS = ['insert', 'replace', 'delete', 'clear', 'sort'];
|
|
104
97
|
function reducerBuilder(key, opts) {
|
|
98
|
+
let initialState = opts?.initialState;
|
|
99
|
+
let stateType = opts?.stateType ?? 'static';
|
|
100
|
+
let isList = stateType === 'list';
|
|
101
|
+
let isMap = stateType === 'map';
|
|
102
|
+
if (initialState === undefined) {
|
|
103
|
+
if (isList)
|
|
104
|
+
initialState = [];
|
|
105
|
+
else if (isMap)
|
|
106
|
+
initialState = {};
|
|
107
|
+
else
|
|
108
|
+
initialState = null;
|
|
109
|
+
}
|
|
105
110
|
return (state, action) => {
|
|
106
|
-
let isList = opts && opts?.stateType === 'list';
|
|
107
|
-
let isMap = opts && opts?.stateType === 'map';
|
|
108
111
|
if (state === undefined) {
|
|
109
|
-
if (
|
|
110
|
-
return
|
|
112
|
+
if (initialState !== undefined)
|
|
113
|
+
return initialState;
|
|
111
114
|
else if (isList)
|
|
112
115
|
return [];
|
|
113
116
|
else if (isMap)
|
|
@@ -121,7 +124,7 @@ function reducerBuilder(key, opts) {
|
|
|
121
124
|
return state;
|
|
122
125
|
let op = m[1];
|
|
123
126
|
let payload = action.payload;
|
|
124
|
-
let keyName =
|
|
127
|
+
let keyName = opts?.keyName ?? "id";
|
|
125
128
|
if (isMap && !OPS.includes(op)) {
|
|
126
129
|
if (payload && !Array.isArray(payload)) {
|
|
127
130
|
payload[keyName] = op;
|
|
@@ -133,7 +136,7 @@ function reducerBuilder(key, opts) {
|
|
|
133
136
|
op = "delete";
|
|
134
137
|
}
|
|
135
138
|
}
|
|
136
|
-
let sort = action.sort
|
|
139
|
+
let sort = action.sort ?? opts?.sort;
|
|
137
140
|
if (op === "insert") {
|
|
138
141
|
if (isList && payload)
|
|
139
142
|
return listInsertReducer(state, { payload, sort, keyName });
|
|
@@ -156,11 +159,7 @@ function reducerBuilder(key, opts) {
|
|
|
156
159
|
return objDeleteReducer();
|
|
157
160
|
}
|
|
158
161
|
else if (op === "clear") {
|
|
159
|
-
|
|
160
|
-
return listClearReducer();
|
|
161
|
-
else if (isMap)
|
|
162
|
-
return mapClearReducer();
|
|
163
|
-
return objClearReducer();
|
|
162
|
+
return initialState;
|
|
164
163
|
}
|
|
165
164
|
else if (op === "sort") {
|
|
166
165
|
if (isList)
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,CAAW,EAAE,CAAW,EAAE,EAAE;IAC5D,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;SAChF,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvG,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,KAAe,EAAE,MAAkB,EAAE,EAAE;IAC/D,IAAI,CAAC,KAAK;QAAE,KAAK,GAAG,EAAE,CAAC;IACvB,IAAI,IAAI,GAAe,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzF,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACjC,KAAK,IAAI,CAAC,IAAI,IAAI,EAAE;QAClB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7D;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,KAAe,EAAE,MAAkB,EAAE,EAAE;IAC/D,IAAI,CAAC,KAAK;QAAE,KAAK,GAAG,EAAE,CAAC;IACvB,IAAI,IAAI,GAAe,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzF,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACjC,KAAK,IAAI,CAAC,IAAI,IAAI,EAAE;QAClB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;KACvC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,KAAe,EAAE,MAAkB,EAAE,EAAE;IAChE,KAAK,GAAG,EAAE,CAAC;IACX,IAAI,IAAI,GAAe,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzF,KAAK,IAAI,CAAC,IAAI,IAAI,EAAE;QAClB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7D;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAA;AAED,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "riducers",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "Dynamic reducers with insert, delete, replace, clear, and sort actions on 'id' based list of objects",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "esm/index.js",
|
|
@@ -31,5 +31,8 @@
|
|
|
31
31
|
"rimraf": "^3.0.2",
|
|
32
32
|
"ts-jest": "^29.0.3",
|
|
33
33
|
"typescript": "^4.8.4"
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"redux": "^4.2.1"
|
|
34
37
|
}
|
|
35
38
|
}
|
package/src/index.ts
CHANGED
|
@@ -53,10 +53,6 @@ const mapReplaceReducer = (state: ModelObj, action: ListAction) => {
|
|
|
53
53
|
return state;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
const mapClearReducer = () => {
|
|
57
|
-
return {};
|
|
58
|
-
}
|
|
59
|
-
|
|
60
56
|
const listInsertReducer = (state: ModelObj[], action: ListAction) => {
|
|
61
57
|
if (!state) state = [];
|
|
62
58
|
let resp: ModelObj[] = Array.isArray(action.payload) ? action.payload : [action.payload];
|
|
@@ -89,6 +85,7 @@ const listSortReducer = (state: ModelObj[], action: ListSortAction) => {
|
|
|
89
85
|
|
|
90
86
|
const listDeleteReducer = (state: ModelObj[], action: ListAction) => {
|
|
91
87
|
if (!state) state = [];
|
|
88
|
+
if (Array.isArray(state)) state = [...state];
|
|
92
89
|
let resp: ModelObj[] = Array.isArray(action.payload) ? action.payload : [action.payload];
|
|
93
90
|
|
|
94
91
|
let stateMap: Id[] = state.map((s: any) => s[action.keyName]);
|
|
@@ -99,10 +96,6 @@ const listDeleteReducer = (state: ModelObj[], action: ListAction) => {
|
|
|
99
96
|
return state;
|
|
100
97
|
}
|
|
101
98
|
|
|
102
|
-
const listClearReducer = () => {
|
|
103
|
-
return [];
|
|
104
|
-
}
|
|
105
|
-
|
|
106
99
|
const listReplaceReducer = (state: ModelObj[], action: ListAction) => {
|
|
107
100
|
let resp: ModelObj[] = Array.isArray(action.payload) ? action.payload : [action.payload];
|
|
108
101
|
resp = resp.map((r: any) => Object.assign({}, r));
|
|
@@ -122,10 +115,6 @@ const objDeleteReducer = () => {
|
|
|
122
115
|
return null
|
|
123
116
|
}
|
|
124
117
|
|
|
125
|
-
const objClearReducer = () => {
|
|
126
|
-
return null
|
|
127
|
-
}
|
|
128
|
-
|
|
129
118
|
interface ReducerOpts {
|
|
130
119
|
stateType?: 'list' | 'map' | 'static';
|
|
131
120
|
sort?: SortFn;
|
|
@@ -135,13 +124,19 @@ interface ReducerOpts {
|
|
|
135
124
|
|
|
136
125
|
const OPS = ['insert', 'replace', 'delete', 'clear', 'sort'];
|
|
137
126
|
function reducerBuilder(key: string, opts?: ReducerOpts) {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
127
|
+
let initialState = opts?.initialState;
|
|
128
|
+
let stateType = opts?.stateType ?? 'static';
|
|
129
|
+
let isList = stateType === 'list';
|
|
130
|
+
let isMap = stateType === 'map';
|
|
131
|
+
if (initialState === undefined) {
|
|
132
|
+
if (isList) initialState = [];
|
|
133
|
+
else if (isMap) initialState = {};
|
|
134
|
+
else initialState = null;
|
|
135
|
+
}
|
|
136
|
+
return (state: any, action: { type: string; payload?: any; sort?: (a: ModelObj, b: ModelObj) => number }) => {
|
|
142
137
|
|
|
143
138
|
if (state === undefined) {
|
|
144
|
-
if (
|
|
139
|
+
if (initialState !== undefined) return initialState;
|
|
145
140
|
else if (isList) return [];
|
|
146
141
|
else if (isMap) return {};
|
|
147
142
|
else return null;
|
|
@@ -180,10 +175,7 @@ function reducerBuilder(key: string, opts?: ReducerOpts) {
|
|
|
180
175
|
else if (isMap) return mapDeleteReducer(state, {payload, keyName});
|
|
181
176
|
return objDeleteReducer();
|
|
182
177
|
} else if (op === "clear") {
|
|
183
|
-
|
|
184
|
-
if (isList) return listClearReducer()
|
|
185
|
-
else if (isMap) return mapClearReducer();
|
|
186
|
-
return objClearReducer();
|
|
178
|
+
return initialState;
|
|
187
179
|
} else if (op === "sort") {
|
|
188
180
|
if (isList) return listSortReducer(state, {sort, keyName});
|
|
189
181
|
} else {
|