@pihanga2/core 0.3.5 → 0.3.7
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.d.ts +16 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/reducer.d.ts.map +1 -1
- package/dist/reducer.js +9 -0
- package/dist/reducer.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +35 -13
- package/src/reducer.ts +18 -10
package/dist/index.d.ts
CHANGED
|
@@ -40,6 +40,7 @@ export declare function register(cbk: RegisterCbk): void;
|
|
|
40
40
|
export declare function clearPendingRegistration(): void;
|
|
41
41
|
export declare function registerCardComponent(declaration: PiRegisterComponent): void;
|
|
42
42
|
export declare function registerCard(name: string, parameters: PiCardDef): void;
|
|
43
|
+
export declare function registerFramework(parameters: PiCardDef): void;
|
|
43
44
|
export declare const DEFAULT_REDUX_STATE: {
|
|
44
45
|
route: {
|
|
45
46
|
path: never[];
|
|
@@ -55,6 +56,21 @@ export type StartProps = {
|
|
|
55
56
|
ignoredActions?: string[];
|
|
56
57
|
ignoredActionPaths?: string[];
|
|
57
58
|
ignoredStatePaths?: string[];
|
|
59
|
+
/**
|
|
60
|
+
* Predicate used by Redux Toolkit's `serializableCheck`.
|
|
61
|
+
*
|
|
62
|
+
* By default RTK considers only "plain" JS values/objects serializable.
|
|
63
|
+
* If your app intentionally carries extra types (e.g. `Date`) in actions/state,
|
|
64
|
+
* you can extend this function:
|
|
65
|
+
*
|
|
66
|
+
* ```ts
|
|
67
|
+
* isSerializable: (v) => isPlain(v) || v instanceof Date
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* This is useful for allowing things like Luxon DateTime, Map/Set wrappers,
|
|
71
|
+
* etc. (Prefer normalizing to plain data where possible.)
|
|
72
|
+
*/
|
|
73
|
+
isSerializable?: (value: unknown) => boolean;
|
|
58
74
|
};
|
|
59
75
|
export declare function start<S extends Partial<ReduxState>>(initialState: S, inits?: ((register: PiRegister) => void)[], props?: StartProps): PiRegister;
|
|
60
76
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import ReactDOM from "react-dom/client";
|
|
|
2
2
|
import { addCard, addCardComponent, registerMetacard, updateOrRegisterCard, } from "./register_cards";
|
|
3
3
|
import { createReducer } from "./reducer";
|
|
4
4
|
import { ON_INIT_ACTION, currentRoute, init as routerInit } from "./router";
|
|
5
|
-
import { configureStore } from "@reduxjs/toolkit";
|
|
5
|
+
import { configureStore, isPlain } from "@reduxjs/toolkit";
|
|
6
6
|
//import monitorReducerEnhancer from "./monitor_enhancer"
|
|
7
7
|
import { getLogger } from "./logger";
|
|
8
8
|
import { registerDELETE, registerGET, registerPATCH, registerPOST, registerPUT, } from "./rest";
|
|
@@ -73,11 +73,15 @@ export function registerCardComponent(declaration) {
|
|
|
73
73
|
export function registerCard(name, parameters) {
|
|
74
74
|
register((r) => r.card(name, parameters));
|
|
75
75
|
}
|
|
76
|
+
export function registerFramework(parameters) {
|
|
77
|
+
register((r) => r.card("_window", parameters));
|
|
78
|
+
}
|
|
76
79
|
export const DEFAULT_REDUX_STATE = {
|
|
77
80
|
route: { path: [], query: {}, url: "", fromBrowser: false },
|
|
78
81
|
pihanga: {},
|
|
79
82
|
};
|
|
80
83
|
export function start(initialState, inits = [], props = {}) {
|
|
84
|
+
var _a;
|
|
81
85
|
const state = {
|
|
82
86
|
...DEFAULT_REDUX_STATE,
|
|
83
87
|
...initialState,
|
|
@@ -105,6 +109,7 @@ export function start(initialState, inits = [], props = {}) {
|
|
|
105
109
|
"data",
|
|
106
110
|
].concat(props.ignoredActionPaths || []);
|
|
107
111
|
const ignoredPaths = ["cause.content"].concat(props.ignoredStatePaths || []);
|
|
112
|
+
const isSerializable = (_a = props.isSerializable) !== null && _a !== void 0 ? _a : isPlain;
|
|
108
113
|
const store = configureStore({
|
|
109
114
|
reducer,
|
|
110
115
|
preloadedState: state, // keep type checking happy
|
|
@@ -116,6 +121,7 @@ export function start(initialState, inits = [], props = {}) {
|
|
|
116
121
|
ignoredPaths,
|
|
117
122
|
ignoreState: props.disableSerializableStateCheck,
|
|
118
123
|
ignoreAction: props.disableSerializableActionCheck,
|
|
124
|
+
isSerializable,
|
|
119
125
|
},
|
|
120
126
|
}),
|
|
121
127
|
});
|
|
@@ -141,6 +147,7 @@ export function start(initialState, inits = [], props = {}) {
|
|
|
141
147
|
PATCH: registerPATCH(piReducer),
|
|
142
148
|
DELETE: registerDELETE(piReducer),
|
|
143
149
|
};
|
|
150
|
+
setRegisterF(register);
|
|
144
151
|
inits.forEach((f) => f(register));
|
|
145
152
|
piReducer.dispatch({ type: ON_INIT_ACTION });
|
|
146
153
|
const rootComp = RootComponent(store);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/reducer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../src/reducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAEL,SAAS,EAOT,UAAU,EACX,MAAM,SAAS,CAAC;AAKjB,OAAO,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AAqB/B,wBAAgB,aAAa,CAC3B,YAAY,EAAE,UAAU,EACxB,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,GACxB,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../src/reducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAEL,SAAS,EAOT,UAAU,EACX,MAAM,SAAS,CAAC;AAKjB,OAAO,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AAqB/B,wBAAgB,aAAa,CAC3B,YAAY,EAAE,UAAU,EACxB,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,GACxB,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAwH1C"}
|
package/dist/reducer.js
CHANGED
|
@@ -15,10 +15,19 @@ export function createReducer(initialState, dispatcher) {
|
|
|
15
15
|
setTimeout(() => dispatcher(a), 0);
|
|
16
16
|
};
|
|
17
17
|
const reducer = (state, action) => {
|
|
18
|
+
var _a;
|
|
18
19
|
const s = state || initialState;
|
|
19
20
|
const ra = mappings[action.type];
|
|
20
21
|
const rany = mappings["*"];
|
|
21
22
|
if ((!ra || ra.length === 0) && (!rany || rany.length === 0)) {
|
|
23
|
+
const ra = (_a = s.pihanga) === null || _a === void 0 ? void 0 : _a.reducers;
|
|
24
|
+
if (ra && ra.length > 0) {
|
|
25
|
+
return produce(s, (draft) => {
|
|
26
|
+
if (draft.pihanga) {
|
|
27
|
+
draft.pihanga.reducers = [];
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
22
31
|
return s;
|
|
23
32
|
}
|
|
24
33
|
const nextState = produce(s, (draft) => {
|
package/dist/reducer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reducer.js","sourceRoot":"","sources":["../src/reducer.ts"],"names":[],"mappings":"AAYA,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAC,iBAAiB,EAAE,mBAAmB,EAAC,MAAM,QAAQ,CAAC;AAC9D,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,SAAS,EAAC,MAAM,UAAU,CAAC;AAInC,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;AAkBpC,MAAM,UAAU,aAAa,CAC3B,YAAwB,EACxB,UAAyB;IAEzB,MAAM,QAAQ,GAAoD,EAAE,CAAC;IACrE,QAAQ,CAAC,mBAAmB,CAAC,GAAG;QAC9B;YACE,WAAW,EAAE,iBAAiB,CAAC,OAAO;YACtC,GAAG,EAAE,mCAAmC;SACzC;KACF,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,CAAM,EAAQ,EAAE;QACzC,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,CACd,KAA6B,EAC7B,MAAc,EACF,EAAE
|
|
1
|
+
{"version":3,"file":"reducer.js","sourceRoot":"","sources":["../src/reducer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -8,15 +8,12 @@ import {
|
|
|
8
8
|
ReduxAction,
|
|
9
9
|
ReduxState,
|
|
10
10
|
PiReducer,
|
|
11
|
-
RegisterCardF,
|
|
12
|
-
MetaCardMapperF,
|
|
13
11
|
PiRegisterMetaCard,
|
|
14
12
|
PiMapProps,
|
|
15
13
|
WindowProps,
|
|
16
14
|
GenericCardParameterT,
|
|
17
15
|
} from "./types";
|
|
18
16
|
import {
|
|
19
|
-
createCardDeclaration,
|
|
20
17
|
addCard,
|
|
21
18
|
addCardComponent,
|
|
22
19
|
registerMetacard,
|
|
@@ -25,7 +22,7 @@ import {
|
|
|
25
22
|
import {createReducer} from "./reducer";
|
|
26
23
|
import {ON_INIT_ACTION, currentRoute, init as routerInit} from "./router";
|
|
27
24
|
|
|
28
|
-
import {configureStore} from "@reduxjs/toolkit";
|
|
25
|
+
import {configureStore, isPlain} from "@reduxjs/toolkit";
|
|
29
26
|
|
|
30
27
|
//import monitorReducerEnhancer from "./monitor_enhancer"
|
|
31
28
|
import {getLogger} from "./logger";
|
|
@@ -78,13 +75,13 @@ export interface PiRegister {
|
|
|
78
75
|
//window(parameters: PiCardDef): PiCardRef
|
|
79
76
|
|
|
80
77
|
window<S extends ReduxState>(
|
|
81
|
-
parameters: PiMapProps<WindowProps, S, {}
|
|
78
|
+
parameters: PiMapProps<WindowProps, S, {}>,
|
|
82
79
|
): PiCardRef;
|
|
83
80
|
|
|
84
81
|
card(name: string, parameters: PiCardDef): PiCardRef;
|
|
85
82
|
updateCard(
|
|
86
83
|
name: string,
|
|
87
|
-
parameters: {[key: string]: GenericCardParameterT}
|
|
84
|
+
parameters: {[key: string]: GenericCardParameterT},
|
|
88
85
|
): PiCardRef;
|
|
89
86
|
|
|
90
87
|
cardComponent(declaration: PiRegisterComponent): void;
|
|
@@ -102,19 +99,19 @@ export interface PiRegister {
|
|
|
102
99
|
metaCard<C>(declaration: PiRegisterMetaCard): void;
|
|
103
100
|
|
|
104
101
|
GET<S extends ReduxState, A extends ReduxAction, R, C = any>(
|
|
105
|
-
props: PiRegisterGetProps<S, A, R, C
|
|
102
|
+
props: PiRegisterGetProps<S, A, R, C>,
|
|
106
103
|
): void;
|
|
107
104
|
PUT<S extends ReduxState, A extends ReduxAction, R, C = any>(
|
|
108
|
-
props: PiRegisterPoPuPaProps<S, A, R, C
|
|
105
|
+
props: PiRegisterPoPuPaProps<S, A, R, C>,
|
|
109
106
|
): void;
|
|
110
107
|
POST<S extends ReduxState, A extends ReduxAction, R, C = any>(
|
|
111
|
-
props: PiRegisterPoPuPaProps<S, A, R, C
|
|
108
|
+
props: PiRegisterPoPuPaProps<S, A, R, C>,
|
|
112
109
|
): void;
|
|
113
110
|
PATCH<S extends ReduxState, A extends ReduxAction, R, C = any>(
|
|
114
|
-
props: PiRegisterPoPuPaProps<S, A, R, C
|
|
111
|
+
props: PiRegisterPoPuPaProps<S, A, R, C>,
|
|
115
112
|
): void;
|
|
116
113
|
DELETE<S extends ReduxState, A extends ReduxAction, R, C = any>(
|
|
117
|
-
props: PiRegisterDeleteProps<S, A, R, C
|
|
114
|
+
props: PiRegisterDeleteProps<S, A, R, C>,
|
|
118
115
|
): void;
|
|
119
116
|
//registerPeriodicGET<S extends ReduxState, A extends ReduxAction, R>(props: PiRegisterPeridicGetProps<S, A, R>): void;
|
|
120
117
|
|
|
@@ -188,6 +185,10 @@ export function registerCard(name: string, parameters: PiCardDef) {
|
|
|
188
185
|
register((r: PiRegister) => r.card(name, parameters));
|
|
189
186
|
}
|
|
190
187
|
|
|
188
|
+
export function registerFramework(parameters: PiCardDef) {
|
|
189
|
+
register((r: PiRegister) => r.card("_window", parameters));
|
|
190
|
+
}
|
|
191
|
+
|
|
191
192
|
export const DEFAULT_REDUX_STATE = {
|
|
192
193
|
route: {path: [], query: {}, url: "", fromBrowser: false},
|
|
193
194
|
pihanga: {},
|
|
@@ -200,12 +201,28 @@ export type StartProps = {
|
|
|
200
201
|
ignoredActions?: string[];
|
|
201
202
|
ignoredActionPaths?: string[];
|
|
202
203
|
ignoredStatePaths?: string[];
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Predicate used by Redux Toolkit's `serializableCheck`.
|
|
207
|
+
*
|
|
208
|
+
* By default RTK considers only "plain" JS values/objects serializable.
|
|
209
|
+
* If your app intentionally carries extra types (e.g. `Date`) in actions/state,
|
|
210
|
+
* you can extend this function:
|
|
211
|
+
*
|
|
212
|
+
* ```ts
|
|
213
|
+
* isSerializable: (v) => isPlain(v) || v instanceof Date
|
|
214
|
+
* ```
|
|
215
|
+
*
|
|
216
|
+
* This is useful for allowing things like Luxon DateTime, Map/Set wrappers,
|
|
217
|
+
* etc. (Prefer normalizing to plain data where possible.)
|
|
218
|
+
*/
|
|
219
|
+
isSerializable?: (value: unknown) => boolean;
|
|
203
220
|
};
|
|
204
221
|
|
|
205
222
|
export function start<S extends Partial<ReduxState>>(
|
|
206
223
|
initialState: S,
|
|
207
224
|
inits: ((register: PiRegister) => void)[] = [],
|
|
208
|
-
props: StartProps = {}
|
|
225
|
+
props: StartProps = {},
|
|
209
226
|
): PiRegister {
|
|
210
227
|
const state = {
|
|
211
228
|
...DEFAULT_REDUX_STATE,
|
|
@@ -235,6 +252,8 @@ export function start<S extends Partial<ReduxState>>(
|
|
|
235
252
|
].concat(props.ignoredActionPaths || []);
|
|
236
253
|
const ignoredPaths = ["cause.content"].concat(props.ignoredStatePaths || []);
|
|
237
254
|
|
|
255
|
+
const isSerializable = props.isSerializable ?? isPlain;
|
|
256
|
+
|
|
238
257
|
const store = configureStore({
|
|
239
258
|
reducer,
|
|
240
259
|
preloadedState: state as any, // keep type checking happy
|
|
@@ -247,6 +266,7 @@ export function start<S extends Partial<ReduxState>>(
|
|
|
247
266
|
ignoredPaths,
|
|
248
267
|
ignoreState: props.disableSerializableStateCheck,
|
|
249
268
|
ignoreAction: props.disableSerializableActionCheck,
|
|
269
|
+
isSerializable,
|
|
250
270
|
},
|
|
251
271
|
}),
|
|
252
272
|
});
|
|
@@ -259,7 +279,7 @@ export function start<S extends Partial<ReduxState>>(
|
|
|
259
279
|
const card = addCard(piReducer.register, dispatchF);
|
|
260
280
|
const updateCard = updateOrRegisterCard(piReducer.register, dispatchF);
|
|
261
281
|
const window = <S extends ReduxState>(
|
|
262
|
-
p: PiMapProps<WindowProps, S, {}
|
|
282
|
+
p: PiMapProps<WindowProps, S, {}>,
|
|
263
283
|
): PiCardRef => {
|
|
264
284
|
return card("_window", {cardType: "framework", ...p});
|
|
265
285
|
};
|
|
@@ -277,6 +297,8 @@ export function start<S extends Partial<ReduxState>>(
|
|
|
277
297
|
PATCH: registerPATCH(piReducer),
|
|
278
298
|
DELETE: registerDELETE(piReducer),
|
|
279
299
|
};
|
|
300
|
+
setRegisterF(register);
|
|
301
|
+
|
|
280
302
|
inits.forEach((f) => f(register));
|
|
281
303
|
|
|
282
304
|
piReducer.dispatch({type: ON_INIT_ACTION});
|
package/src/reducer.ts
CHANGED
|
@@ -37,7 +37,7 @@ type Source = {
|
|
|
37
37
|
|
|
38
38
|
export function createReducer(
|
|
39
39
|
initialState: ReduxState,
|
|
40
|
-
dispatcher: Dispatch<any
|
|
40
|
+
dispatcher: Dispatch<any>,
|
|
41
41
|
): [Reducer<ReduxState, Action>, PiReducer] {
|
|
42
42
|
const mappings: {[k: string]: ReducerDef<ReduxState, Action>[]} = {};
|
|
43
43
|
mappings[UPDATE_STATE_ACTION] = [
|
|
@@ -52,12 +52,20 @@ export function createReducer(
|
|
|
52
52
|
};
|
|
53
53
|
const reducer = (
|
|
54
54
|
state: ReduxState | undefined,
|
|
55
|
-
action: Action
|
|
55
|
+
action: Action,
|
|
56
56
|
): ReduxState => {
|
|
57
57
|
const s = state || initialState;
|
|
58
58
|
const ra = mappings[action.type];
|
|
59
59
|
const rany = mappings["*"];
|
|
60
60
|
if ((!ra || ra.length === 0) && (!rany || rany.length === 0)) {
|
|
61
|
+
const ra = s.pihanga?.reducers;
|
|
62
|
+
if (ra && ra.length > 0) {
|
|
63
|
+
return produce<ReduxState, ReduxState>(s, (draft) => {
|
|
64
|
+
if (draft.pihanga) {
|
|
65
|
+
draft.pihanga.reducers = [];
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
61
69
|
return s;
|
|
62
70
|
}
|
|
63
71
|
|
|
@@ -81,13 +89,13 @@ export function createReducer(
|
|
|
81
89
|
|
|
82
90
|
const registerReducer: PiRegisterReducerF = <
|
|
83
91
|
S extends ReduxState,
|
|
84
|
-
A extends ReduxAction
|
|
92
|
+
A extends ReduxAction,
|
|
85
93
|
>(
|
|
86
94
|
eventType: string,
|
|
87
95
|
mapper: ReduceF<S, A>,
|
|
88
96
|
priority: number = 0,
|
|
89
97
|
key?: string,
|
|
90
|
-
targetMapper?: ReduceF<S, A
|
|
98
|
+
targetMapper?: ReduceF<S, A>,
|
|
91
99
|
): PiReducerCancelF => {
|
|
92
100
|
return addReducer(eventType, {
|
|
93
101
|
mapperMulti: mapper,
|
|
@@ -99,12 +107,12 @@ export function createReducer(
|
|
|
99
107
|
|
|
100
108
|
const registerOneShot: PiRegisterOneShotReducerF = <
|
|
101
109
|
S extends ReduxState,
|
|
102
|
-
A extends ReduxAction
|
|
110
|
+
A extends ReduxAction,
|
|
103
111
|
>(
|
|
104
112
|
eventType: string,
|
|
105
113
|
mapper: (state: S, action: A, dispatch: DispatchF) => boolean,
|
|
106
114
|
priority: number = 0,
|
|
107
|
-
key: string | undefined = undefined
|
|
115
|
+
key: string | undefined = undefined,
|
|
108
116
|
): PiReducerCancelF => {
|
|
109
117
|
return addReducer(eventType, {mapperOnce: mapper, priority, key});
|
|
110
118
|
};
|
|
@@ -113,7 +121,7 @@ export function createReducer(
|
|
|
113
121
|
|
|
114
122
|
function addReducer<S extends ReduxState, A extends ReduxAction>(
|
|
115
123
|
eventType: string,
|
|
116
|
-
reducerDef: ReducerDef<S, A
|
|
124
|
+
reducerDef: ReducerDef<S, A>,
|
|
117
125
|
): PiReducerCancelF {
|
|
118
126
|
let m = mappings[eventType] || [];
|
|
119
127
|
const key = reducerDef.key;
|
|
@@ -154,7 +162,7 @@ export function createReducer(
|
|
|
154
162
|
|
|
155
163
|
function removeReducer(
|
|
156
164
|
key: string | undefined,
|
|
157
|
-
m: ReducerDef<ReduxState, Action>[]
|
|
165
|
+
m: ReducerDef<ReduxState, Action>[],
|
|
158
166
|
) {
|
|
159
167
|
if (key) {
|
|
160
168
|
return m.filter((r) => r.key !== key);
|
|
@@ -167,7 +175,7 @@ function _reduce(
|
|
|
167
175
|
ra: ReducerDef<ReduxState, Action>[],
|
|
168
176
|
draft: ReduxState,
|
|
169
177
|
action: Action,
|
|
170
|
-
delayedDispatcher: (a: any) => void
|
|
178
|
+
delayedDispatcher: (a: any) => void,
|
|
171
179
|
): ReducerDef<ReduxState, Action<any>>[] {
|
|
172
180
|
const rout: ReducerDef<ReduxState, Action<any>>[] = [];
|
|
173
181
|
ra.forEach((m) => {
|
|
@@ -194,7 +202,7 @@ function _reduce(
|
|
|
194
202
|
}
|
|
195
203
|
|
|
196
204
|
function _get_source_frame(
|
|
197
|
-
frames: StackTrace.StackFrame[]
|
|
205
|
+
frames: StackTrace.StackFrame[],
|
|
198
206
|
): StackTrace.StackFrame | undefined {
|
|
199
207
|
// Heuristic: frame 0 = Error, 1 = getCallerSiteInBrowser, 2 = your function, 3 = its caller
|
|
200
208
|
for (let i = 3; i < frames.length; i++) {
|