@flashist/appframework 0.0.346 → 0.0.348
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/package.json
CHANGED
|
@@ -43,11 +43,32 @@ export declare class AppStateStorage extends BaseObjectWithGlobalDispatcher {
|
|
|
43
43
|
protected getPathsHelperData(deepKey: string, config?: IAppStateChangeConfigVO): IDeepKeyHelperVO;
|
|
44
44
|
protected triggerPreChangeHooks<StateType, DeepKeyType extends keyof Flatten<StateType>>(stateForTypings: StateType, deepKey: DeepKeyType, config: IAppStateChangeConfigVO): void;
|
|
45
45
|
getValue<StateType extends object, D extends number = DefaultFlattenDepth>(): <DeepKeyType extends keyof Flatten<StateType, never, D>>(key: DeepKeyType) => Partial<Flatten<StateType, never, D>[DeepKeyType]>;
|
|
46
|
+
/**
|
|
47
|
+
* Use with pre-computed Flatten types to avoid repeated type instantiation.
|
|
48
|
+
* @example
|
|
49
|
+
* type MyPaths = Flatten<MyState, 6>;
|
|
50
|
+
* appStateStorage().getValuePrecomputed<MyPaths>()("deep.path");
|
|
51
|
+
*/
|
|
52
|
+
getValuePrecomputed<FlatType extends object>(): <K extends keyof FlatType>(key: K) => Partial<FlatType[K]>;
|
|
46
53
|
protected innerGetValue<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType): Partial<ValueType>;
|
|
47
54
|
protected processStateAction<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, config: IAppStateChangeConfigVO<ValueType>): any;
|
|
48
55
|
substitute<StateType extends object, D extends number = DefaultFlattenDepth>(): <DeepKeyType extends keyof Flatten<StateType, never, D>>(key: DeepKeyType, value: DeepPartial<Flatten<StateType, never, D>[DeepKeyType]>) => void;
|
|
56
|
+
/**
|
|
57
|
+
* Use with pre-computed Flatten types to avoid repeated type instantiation.
|
|
58
|
+
* @example
|
|
59
|
+
* type MyPaths = Flatten<MyState, 6>;
|
|
60
|
+
* appStateStorage().substitutePrecomputed<MyPaths>()("deep.path", value);
|
|
61
|
+
*/
|
|
62
|
+
substitutePrecomputed<FlatType extends object>(): <K extends keyof FlatType>(key: K, value: DeepPartial<FlatType[K]>) => void;
|
|
49
63
|
protected innerSubstitute<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, value: DeepPartial<ValueType>): void;
|
|
50
64
|
change<StateType extends object, D extends number = DefaultFlattenDepth>(): <DeepKeyType extends keyof Flatten<StateType, never, D>>(key: DeepKeyType, value: DeepPartial<Flatten<StateType, never, D>[DeepKeyType]>) => void;
|
|
65
|
+
/**
|
|
66
|
+
* Use with pre-computed Flatten types to avoid repeated type instantiation.
|
|
67
|
+
* @example
|
|
68
|
+
* type MyPaths = Flatten<MyState, 6>;
|
|
69
|
+
* appStateStorage().changePrecomputed<MyPaths>()("deep.path", value);
|
|
70
|
+
*/
|
|
71
|
+
changePrecomputed<FlatType extends object>(): <K extends keyof FlatType>(key: K, value: DeepPartial<FlatType[K]>) => void;
|
|
51
72
|
protected innerChange<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, value: DeepPartial<ValueType>): void;
|
|
52
73
|
delete<StateType extends object, D extends number = DefaultFlattenDepth>(): <DeepKeyType extends keyof Flatten<StateType, never, D>, ValueType extends Flatten<StateType, never, D>[DeepKeyType] & Array<any> = Flatten<StateType, never, D>[DeepKeyType] & Array<any>>(key: DeepKeyType) => (((StateType extends readonly any[] ? Exclude<keyof StateType, keyof any[]> extends never ? {
|
|
53
74
|
[k: number]: StateType[number];
|
|
@@ -110,8 +131,82 @@ export declare class AppStateStorage extends BaseObjectWithGlobalDispatcher {
|
|
|
110
131
|
} : Omit<T_19, keyof any[]> : T_19 : never : never) extends infer T_20 ? T_20 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_21 ? T_21 extends U[K_4] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
|
|
111
132
|
[k: number]: T_21[number];
|
|
112
133
|
} : Omit<T_21, keyof any[]> : T_21 : never : never) ? T_20 extends never ? T_20 : { [P_15 in keyof T_20 as (<T_21>() => T_21 extends { [Q in P_15]: T_20[P_15]; } ? 1 : 2) extends <T_21>() => T_21 extends { -readonly [Q in P_15]: T_20[P_15]; } ? 1 : 2 ? P_15 : never]: T_20[P_15]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: U[K_5] extends infer T_22 ? T_22 extends U[K_5] ? T_22 extends never ? { [P_16 in K_5]: T_22; } : T_22 extends object ? { [P_17 in keyof T_22 as `${Extract<K_5, string | number>}.${Extract<P_17, string | number>}`]: T_22[P_17]; } : { [P_18 in K_5]: T_22; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_18 extends never ? { [P_12 in K_4]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_4, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_4]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_11 extends never ? { [P_7 in K_2]: T_11; } : T_11 extends object ? { [P_8 in keyof T_11 as `${Extract<K_2, string | number>}.${Extract<P_8, string | number>}`]: T_11[P_8]; } : { [P_9 in K_2]: T_11; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_4 extends never ? { [P_2 in K]: T_4; } : T_4 extends object ? { [P_3 in keyof T_4 as `${Extract<K, string | number>}.${Extract<P_3, string | number>}`]: T_4[P_3]; } : { [P_4 in K]: T_4; } : never : never) => void; }[keyof U] | ((x: U) => void) extends (x: infer I) => void ? { [K_1 in keyof I]: I[K_1]; } : never : U : never)[any];
|
|
134
|
+
/**
|
|
135
|
+
* Use with pre-computed Flatten types to avoid repeated type instantiation.
|
|
136
|
+
* @example
|
|
137
|
+
* type MyPaths = Flatten<MyState, 6>;
|
|
138
|
+
* appStateStorage().deletePrecomputed<MyPaths>()("deep.path");
|
|
139
|
+
*/
|
|
140
|
+
deletePrecomputed<FlatType extends object>(): <K extends keyof FlatType>(key: K) => (((FlatType extends readonly any[] ? Exclude<keyof FlatType, keyof any[]> extends never ? {
|
|
141
|
+
[k: number]: FlatType[number];
|
|
142
|
+
} : Omit<FlatType, keyof any[]> : FlatType) extends infer T ? T extends (FlatType extends readonly any[] ? Exclude<keyof FlatType, keyof any[]> extends never ? {
|
|
143
|
+
[k: number]: FlatType[number];
|
|
144
|
+
} : Omit<FlatType, keyof any[]> : FlatType) ? T extends never ? T : { [P in keyof T as (<T_1>() => T_1 extends { [Q in P]: T[P]; } ? 1 : 2) extends <T_1>() => T_1 extends { -readonly [Q in P]: T[P]; } ? 1 : 2 ? P : never]: T[P]; } : never : never) extends infer U ? U extends never ? U : U extends object ? { [K_1 in keyof U]-?: (x: (((0 extends 1 & U[K_1] ? unknown : U[K_1] extends infer T_1 ? T_1 extends U[K_1] ? T_1 extends readonly any[] ? Exclude<keyof T_1, keyof any[]> extends never ? {
|
|
145
|
+
[k: number]: T_1[number];
|
|
146
|
+
} : Omit<T_1, keyof any[]> : T_1 : never : never) extends infer T_2 ? T_2 extends (0 extends 1 & U[K_1] ? unknown : U[K_1] extends infer T_3 ? T_3 extends U[K_1] ? T_3 extends readonly any[] ? Exclude<keyof T_3, keyof any[]> extends never ? {
|
|
147
|
+
[k: number]: T_3[number];
|
|
148
|
+
} : Omit<T_3, keyof any[]> : T_3 : never : never) ? T_2 extends never ? T_2 : { [P_1 in keyof T_2 as (<T_3>() => T_3 extends { [Q in P_1]: T_2[P_1]; } ? 1 : 2) extends <T_3>() => T_3 extends { -readonly [Q in P_1]: T_2[P_1]; } ? 1 : 2 ? P_1 : never]: T_2[P_1]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_3 in keyof U]-?: (x: (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_4 ? T_4 extends U[K_3] ? T_4 extends readonly any[] ? Exclude<keyof T_4, keyof any[]> extends never ? {
|
|
149
|
+
[k: number]: T_4[number];
|
|
150
|
+
} : Omit<T_4, keyof any[]> : T_4 : never : never) extends infer T_5 ? T_5 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_6 ? T_6 extends U[K_3] ? T_6 extends readonly any[] ? Exclude<keyof T_6, keyof any[]> extends never ? {
|
|
151
|
+
[k: number]: T_6[number];
|
|
152
|
+
} : Omit<T_6, keyof any[]> : T_6 : never : never) ? T_5 extends never ? T_5 : { [P_2 in keyof T_5 as (<T_6>() => T_6 extends { [Q in P_2]: T_5[P_2]; } ? 1 : 2) extends <T_6>() => T_6 extends { -readonly [Q in P_2]: T_5[P_2]; } ? 1 : 2 ? P_2 : never]: T_5[P_2]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_4 in keyof U]-?: (x: (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_7 ? T_7 extends U[K_4] ? T_7 extends readonly any[] ? Exclude<keyof T_7, keyof any[]> extends never ? {
|
|
153
|
+
[k: number]: T_7[number];
|
|
154
|
+
} : Omit<T_7, keyof any[]> : T_7 : never : never) extends infer T_8 ? T_8 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_9 ? T_9 extends U[K_4] ? T_9 extends readonly any[] ? Exclude<keyof T_9, keyof any[]> extends never ? {
|
|
155
|
+
[k: number]: T_9[number];
|
|
156
|
+
} : Omit<T_9, keyof any[]> : T_9 : never : never) ? T_8 extends never ? T_8 : { [P_3 in keyof T_8 as (<T_9>() => T_9 extends { [Q in P_3]: T_8[P_3]; } ? 1 : 2) extends <T_9>() => T_9 extends { -readonly [Q in P_3]: T_8[P_3]; } ? 1 : 2 ? P_3 : never]: T_8[P_3]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: U[K_5] extends infer T_10 ? T_10 extends U[K_5] ? T_10 extends never ? { [P_4 in K_5]: T_10; } : T_10 extends object ? { [P_5 in keyof T_10 as `${Extract<K_5, string | number>}.${Extract<P_5, string | number>}`]: T_10[P_5]; } : { [P_6 in K_5]: T_10; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_6 in keyof I]: I[K_6]; } : never : U : never) extends infer T_10 ? T_10 extends (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_11 ? T_11 extends U[K_4] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
|
|
157
|
+
[k: number]: T_11[number];
|
|
158
|
+
} : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_13 ? T_13 extends U[K_4] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
|
|
159
|
+
[k: number]: T_13[number];
|
|
160
|
+
} : Omit<T_13, keyof any[]> : T_13 : never : never) ? T_12 extends never ? T_12 : { [P_7 in keyof T_12 as (<T_13>() => T_13 extends { [Q in P_7]: T_12[P_7]; } ? 1 : 2) extends <T_13>() => T_13 extends { -readonly [Q in P_7]: T_12[P_7]; } ? 1 : 2 ? P_7 : never]: T_12[P_7]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: U[K_5] extends infer T_14 ? T_14 extends U[K_5] ? T_14 extends never ? { [P_8 in K_5]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_5, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_5]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_6 in keyof I]: I[K_6]; } : never : U : never) ? T_10 extends never ? { [P_4 in K_4]: T_10; } : T_10 extends object ? { [P_5 in keyof T_10 as `${Extract<K_4, string | number>}.${Extract<P_5, string | number>}`]: T_10[P_5]; } : { [P_6 in K_4]: T_10; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) extends infer T_7 ? T_7 extends (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_8 ? T_8 extends U[K_3] ? T_8 extends readonly any[] ? Exclude<keyof T_8, keyof any[]> extends never ? {
|
|
161
|
+
[k: number]: T_8[number];
|
|
162
|
+
} : Omit<T_8, keyof any[]> : T_8 : never : never) extends infer T_9 ? T_9 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_10 ? T_10 extends U[K_3] ? T_10 extends readonly any[] ? Exclude<keyof T_10, keyof any[]> extends never ? {
|
|
163
|
+
[k: number]: T_10[number];
|
|
164
|
+
} : Omit<T_10, keyof any[]> : T_10 : never : never) ? T_9 extends never ? T_9 : { [P_6 in keyof T_9 as (<T_10>() => T_10 extends { [Q in P_6]: T_9[P_6]; } ? 1 : 2) extends <T_10>() => T_10 extends { -readonly [Q in P_6]: T_9[P_6]; } ? 1 : 2 ? P_6 : never]: T_9[P_6]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_4 in keyof U]-?: (x: (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_11 ? T_11 extends U[K_4] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
|
|
165
|
+
[k: number]: T_11[number];
|
|
166
|
+
} : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_13 ? T_13 extends U[K_4] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
|
|
167
|
+
[k: number]: T_13[number];
|
|
168
|
+
} : Omit<T_13, keyof any[]> : T_13 : never : never) ? T_12 extends never ? T_12 : { [P_7 in keyof T_12 as (<T_13>() => T_13 extends { [Q in P_7]: T_12[P_7]; } ? 1 : 2) extends <T_13>() => T_13 extends { -readonly [Q in P_7]: T_12[P_7]; } ? 1 : 2 ? P_7 : never]: T_12[P_7]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_14 ? T_14 extends U[K_6] ? T_14 extends never ? { [P_8 in K_6]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_6, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_6]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) extends infer T_14 ? T_14 extends (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_15 ? T_15 extends U[K_4] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
|
|
169
|
+
[k: number]: T_15[number];
|
|
170
|
+
} : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_17 ? T_17 extends U[K_4] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
|
|
171
|
+
[k: number]: T_17[number];
|
|
172
|
+
} : Omit<T_17, keyof any[]> : T_17 : never : never) ? T_16 extends never ? T_16 : { [P_11 in keyof T_16 as (<T_17>() => T_17 extends { [Q in P_11]: T_16[P_11]; } ? 1 : 2) extends <T_17>() => T_17 extends { -readonly [Q in P_11]: T_16[P_11]; } ? 1 : 2 ? P_11 : never]: T_16[P_11]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_18 ? T_18 extends U[K_6] ? T_18 extends never ? { [P_12 in K_6]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_6, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_6]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) ? T_14 extends never ? { [P_8 in K_4]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_4, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_4]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) ? T_7 extends never ? { [P_3 in K_3]: T_7; } : T_7 extends object ? { [P_4 in keyof T_7 as `${Extract<K_3, string | number>}.${Extract<P_4, string | number>}`]: T_7[P_4]; } : { [P_5 in K_3]: T_7; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_4 ? T_4 extends (((0 extends 1 & U[K_1] ? unknown : U[K_1] extends infer T_5 ? T_5 extends U[K_1] ? T_5 extends readonly any[] ? Exclude<keyof T_5, keyof any[]> extends never ? {
|
|
173
|
+
[k: number]: T_5[number];
|
|
174
|
+
} : Omit<T_5, keyof any[]> : T_5 : never : never) extends infer T_6 ? T_6 extends (0 extends 1 & U[K_1] ? unknown : U[K_1] extends infer T_7 ? T_7 extends U[K_1] ? T_7 extends readonly any[] ? Exclude<keyof T_7, keyof any[]> extends never ? {
|
|
175
|
+
[k: number]: T_7[number];
|
|
176
|
+
} : Omit<T_7, keyof any[]> : T_7 : never : never) ? T_6 extends never ? T_6 : { [P_5 in keyof T_6 as (<T_7>() => T_7 extends { [Q in P_5]: T_6[P_5]; } ? 1 : 2) extends <T_7>() => T_7 extends { -readonly [Q in P_5]: T_6[P_5]; } ? 1 : 2 ? P_5 : never]: T_6[P_5]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_3 in keyof U]-?: (x: (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_8 ? T_8 extends U[K_3] ? T_8 extends readonly any[] ? Exclude<keyof T_8, keyof any[]> extends never ? {
|
|
177
|
+
[k: number]: T_8[number];
|
|
178
|
+
} : Omit<T_8, keyof any[]> : T_8 : never : never) extends infer T_9 ? T_9 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_10 ? T_10 extends U[K_3] ? T_10 extends readonly any[] ? Exclude<keyof T_10, keyof any[]> extends never ? {
|
|
179
|
+
[k: number]: T_10[number];
|
|
180
|
+
} : Omit<T_10, keyof any[]> : T_10 : never : never) ? T_9 extends never ? T_9 : { [P_6 in keyof T_9 as (<T_10>() => T_10 extends { [Q in P_6]: T_9[P_6]; } ? 1 : 2) extends <T_10>() => T_10 extends { -readonly [Q in P_6]: T_9[P_6]; } ? 1 : 2 ? P_6 : never]: T_9[P_6]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_11 ? T_11 extends U[K_5] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
|
|
181
|
+
[k: number]: T_11[number];
|
|
182
|
+
} : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_13 ? T_13 extends U[K_5] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
|
|
183
|
+
[k: number]: T_13[number];
|
|
184
|
+
} : Omit<T_13, keyof any[]> : T_13 : never : never) ? T_12 extends never ? T_12 : { [P_7 in keyof T_12 as (<T_13>() => T_13 extends { [Q in P_7]: T_12[P_7]; } ? 1 : 2) extends <T_13>() => T_13 extends { -readonly [Q in P_7]: T_12[P_7]; } ? 1 : 2 ? P_7 : never]: T_12[P_7]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_14 ? T_14 extends U[K_6] ? T_14 extends never ? { [P_8 in K_6]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_6, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_6]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_14 ? T_14 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_15 ? T_15 extends U[K_5] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
|
|
185
|
+
[k: number]: T_15[number];
|
|
186
|
+
} : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_17 ? T_17 extends U[K_5] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
|
|
187
|
+
[k: number]: T_17[number];
|
|
188
|
+
} : Omit<T_17, keyof any[]> : T_17 : never : never) ? T_16 extends never ? T_16 : { [P_11 in keyof T_16 as (<T_17>() => T_17 extends { [Q in P_11]: T_16[P_11]; } ? 1 : 2) extends <T_17>() => T_17 extends { -readonly [Q in P_11]: T_16[P_11]; } ? 1 : 2 ? P_11 : never]: T_16[P_11]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_18 ? T_18 extends U[K_6] ? T_18 extends never ? { [P_12 in K_6]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_6, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_6]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_14 extends never ? { [P_8 in K_5]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_5, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_5]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_11 ? T_11 extends (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_12 ? T_12 extends U[K_3] ? T_12 extends readonly any[] ? Exclude<keyof T_12, keyof any[]> extends never ? {
|
|
189
|
+
[k: number]: T_12[number];
|
|
190
|
+
} : Omit<T_12, keyof any[]> : T_12 : never : never) extends infer T_13 ? T_13 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_14 ? T_14 extends U[K_3] ? T_14 extends readonly any[] ? Exclude<keyof T_14, keyof any[]> extends never ? {
|
|
191
|
+
[k: number]: T_14[number];
|
|
192
|
+
} : Omit<T_14, keyof any[]> : T_14 : never : never) ? T_13 extends never ? T_13 : { [P_10 in keyof T_13 as (<T_14>() => T_14 extends { [Q in P_10]: T_13[P_10]; } ? 1 : 2) extends <T_14>() => T_14 extends { -readonly [Q in P_10]: T_13[P_10]; } ? 1 : 2 ? P_10 : never]: T_13[P_10]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_15 ? T_15 extends U[K_5] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
|
|
193
|
+
[k: number]: T_15[number];
|
|
194
|
+
} : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_17 ? T_17 extends U[K_5] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
|
|
195
|
+
[k: number]: T_17[number];
|
|
196
|
+
} : Omit<T_17, keyof any[]> : T_17 : never : never) ? T_16 extends never ? T_16 : { [P_11 in keyof T_16 as (<T_17>() => T_17 extends { [Q in P_11]: T_16[P_11]; } ? 1 : 2) extends <T_17>() => T_17 extends { -readonly [Q in P_11]: T_16[P_11]; } ? 1 : 2 ? P_11 : never]: T_16[P_11]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_18 ? T_18 extends U[K_6] ? T_18 extends never ? { [P_12 in K_6]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_6, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_6]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_18 ? T_18 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_19 ? T_19 extends U[K_5] ? T_19 extends readonly any[] ? Exclude<keyof T_19, keyof any[]> extends never ? {
|
|
197
|
+
[k: number]: T_19[number];
|
|
198
|
+
} : Omit<T_19, keyof any[]> : T_19 : never : never) extends infer T_20 ? T_20 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_21 ? T_21 extends U[K_5] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
|
|
199
|
+
[k: number]: T_21[number];
|
|
200
|
+
} : Omit<T_21, keyof any[]> : T_21 : never : never) ? T_20 extends never ? T_20 : { [P_15 in keyof T_20 as (<T_21>() => T_21 extends { [Q in P_15]: T_20[P_15]; } ? 1 : 2) extends <T_21>() => T_21 extends { -readonly [Q in P_15]: T_20[P_15]; } ? 1 : 2 ? P_15 : never]: T_20[P_15]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_22 ? T_22 extends U[K_6] ? T_22 extends never ? { [P_16 in K_6]: T_22; } : T_22 extends object ? { [P_17 in keyof T_22 as `${Extract<K_6, string | number>}.${Extract<P_17, string | number>}`]: T_22[P_17]; } : { [P_18 in K_6]: T_22; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_18 extends never ? { [P_12 in K_5]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_5, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_5]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_11 extends never ? { [P_7 in K_3]: T_11; } : T_11 extends object ? { [P_8 in keyof T_11 as `${Extract<K_3, string | number>}.${Extract<P_8, string | number>}`]: T_11[P_8]; } : { [P_9 in K_3]: T_11; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_4 extends never ? { [P_2 in K_1]: T_4; } : T_4 extends object ? { [P_3 in keyof T_4 as `${Extract<K_1, string | number>}.${Extract<P_3, string | number>}`]: T_4[P_3]; } : { [P_4 in K_1]: T_4; } : never : never) => void; }[keyof U] | ((x: U) => void) extends (x: infer I) => void ? { [K_2 in keyof I]: I[K_2]; } : never : U : never)[any];
|
|
113
201
|
protected innerDelete<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType): ValueType;
|
|
114
202
|
push<StateType extends object, D extends number = DefaultFlattenDepth>(): <DeepKeyType extends keyof Flatten<StateType, never, D>, ArrayType extends Flatten<StateType, never, D>[DeepKeyType] & Array<any> = Flatten<StateType, never, D>[DeepKeyType] & Array<any>>(key: DeepKeyType, ...elements: ArrayType) => void;
|
|
203
|
+
/**
|
|
204
|
+
* Use with pre-computed Flatten types to avoid repeated type instantiation.
|
|
205
|
+
* @example
|
|
206
|
+
* type MyPaths = Flatten<MyState, 6>;
|
|
207
|
+
* appStateStorage().pushPrecomputed<MyPaths>()("deep.array.path", element1, element2);
|
|
208
|
+
*/
|
|
209
|
+
pushPrecomputed<FlatType extends object>(): <K extends keyof FlatType, ArrayType extends FlatType[K] & Array<any>>(key: K, ...elements: ArrayType) => void;
|
|
115
210
|
protected innerPush<StateType, DeepKeyType extends keyof Flatten<StateType>, ArrayType extends Flatten<StateType>[DeepKeyType] & Array<any> = Flatten<StateType>[DeepKeyType] & Array<any>>(stateForTypings: StateType, deepKey: DeepKeyType, ...elements: ArrayType): void;
|
|
116
211
|
splice<StateType extends object, D extends number = DefaultFlattenDepth>(): <DeepKeyType extends keyof Flatten<StateType, never, D>, ArrayType extends Flatten<StateType, never, D>[DeepKeyType] & Array<any> = Flatten<StateType, never, D>[DeepKeyType] & Array<any>>(key: DeepKeyType, start: number, deleteCount?: number) => (((StateType extends readonly any[] ? Exclude<keyof StateType, keyof any[]> extends never ? {
|
|
117
212
|
[k: number]: StateType[number];
|
|
@@ -174,5 +269,72 @@ export declare class AppStateStorage extends BaseObjectWithGlobalDispatcher {
|
|
|
174
269
|
} : Omit<T_19, keyof any[]> : T_19 : never : never) extends infer T_20 ? T_20 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_21 ? T_21 extends U[K_4] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
|
|
175
270
|
[k: number]: T_21[number];
|
|
176
271
|
} : Omit<T_21, keyof any[]> : T_21 : never : never) ? T_20 extends never ? T_20 : { [P_15 in keyof T_20 as (<T_21>() => T_21 extends { [Q in P_15]: T_20[P_15]; } ? 1 : 2) extends <T_21>() => T_21 extends { -readonly [Q in P_15]: T_20[P_15]; } ? 1 : 2 ? P_15 : never]: T_20[P_15]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: U[K_5] extends infer T_22 ? T_22 extends U[K_5] ? T_22 extends never ? { [P_16 in K_5]: T_22; } : T_22 extends object ? { [P_17 in keyof T_22 as `${Extract<K_5, string | number>}.${Extract<P_17, string | number>}`]: T_22[P_17]; } : { [P_18 in K_5]: T_22; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_18 extends never ? { [P_12 in K_4]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_4, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_4]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_11 extends never ? { [P_7 in K_2]: T_11; } : T_11 extends object ? { [P_8 in keyof T_11 as `${Extract<K_2, string | number>}.${Extract<P_8, string | number>}`]: T_11[P_8]; } : { [P_9 in K_2]: T_11; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_4 extends never ? { [P_2 in K]: T_4; } : T_4 extends object ? { [P_3 in keyof T_4 as `${Extract<K, string | number>}.${Extract<P_3, string | number>}`]: T_4[P_3]; } : { [P_4 in K]: T_4; } : never : never) => void; }[keyof U] | ((x: U) => void) extends (x: infer I) => void ? { [K_1 in keyof I]: I[K_1]; } : never : U : never)[any][];
|
|
272
|
+
/**
|
|
273
|
+
* Use with pre-computed Flatten types to avoid repeated type instantiation.
|
|
274
|
+
* @example
|
|
275
|
+
* type MyPaths = Flatten<MyState, 6>;
|
|
276
|
+
* appStateStorage().splicePrecomputed<MyPaths>()("deep.array.path", 0, 1);
|
|
277
|
+
*/
|
|
278
|
+
splicePrecomputed<FlatType extends object>(): <K extends keyof FlatType>(key: K, start: number, deleteCount?: number) => (((FlatType extends readonly any[] ? Exclude<keyof FlatType, keyof any[]> extends never ? {
|
|
279
|
+
[k: number]: FlatType[number];
|
|
280
|
+
} : Omit<FlatType, keyof any[]> : FlatType) extends infer T ? T extends (FlatType extends readonly any[] ? Exclude<keyof FlatType, keyof any[]> extends never ? {
|
|
281
|
+
[k: number]: FlatType[number];
|
|
282
|
+
} : Omit<FlatType, keyof any[]> : FlatType) ? T extends never ? T : { [P in keyof T as (<T_1>() => T_1 extends { [Q in P]: T[P]; } ? 1 : 2) extends <T_1>() => T_1 extends { -readonly [Q in P]: T[P]; } ? 1 : 2 ? P : never]: T[P]; } : never : never) extends infer U ? U extends never ? U : U extends object ? { [K_1 in keyof U]-?: (x: (((0 extends 1 & U[K_1] ? unknown : U[K_1] extends infer T_1 ? T_1 extends U[K_1] ? T_1 extends readonly any[] ? Exclude<keyof T_1, keyof any[]> extends never ? {
|
|
283
|
+
[k: number]: T_1[number];
|
|
284
|
+
} : Omit<T_1, keyof any[]> : T_1 : never : never) extends infer T_2 ? T_2 extends (0 extends 1 & U[K_1] ? unknown : U[K_1] extends infer T_3 ? T_3 extends U[K_1] ? T_3 extends readonly any[] ? Exclude<keyof T_3, keyof any[]> extends never ? {
|
|
285
|
+
[k: number]: T_3[number];
|
|
286
|
+
} : Omit<T_3, keyof any[]> : T_3 : never : never) ? T_2 extends never ? T_2 : { [P_1 in keyof T_2 as (<T_3>() => T_3 extends { [Q in P_1]: T_2[P_1]; } ? 1 : 2) extends <T_3>() => T_3 extends { -readonly [Q in P_1]: T_2[P_1]; } ? 1 : 2 ? P_1 : never]: T_2[P_1]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_3 in keyof U]-?: (x: (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_4 ? T_4 extends U[K_3] ? T_4 extends readonly any[] ? Exclude<keyof T_4, keyof any[]> extends never ? {
|
|
287
|
+
[k: number]: T_4[number];
|
|
288
|
+
} : Omit<T_4, keyof any[]> : T_4 : never : never) extends infer T_5 ? T_5 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_6 ? T_6 extends U[K_3] ? T_6 extends readonly any[] ? Exclude<keyof T_6, keyof any[]> extends never ? {
|
|
289
|
+
[k: number]: T_6[number];
|
|
290
|
+
} : Omit<T_6, keyof any[]> : T_6 : never : never) ? T_5 extends never ? T_5 : { [P_2 in keyof T_5 as (<T_6>() => T_6 extends { [Q in P_2]: T_5[P_2]; } ? 1 : 2) extends <T_6>() => T_6 extends { -readonly [Q in P_2]: T_5[P_2]; } ? 1 : 2 ? P_2 : never]: T_5[P_2]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_4 in keyof U]-?: (x: (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_7 ? T_7 extends U[K_4] ? T_7 extends readonly any[] ? Exclude<keyof T_7, keyof any[]> extends never ? {
|
|
291
|
+
[k: number]: T_7[number];
|
|
292
|
+
} : Omit<T_7, keyof any[]> : T_7 : never : never) extends infer T_8 ? T_8 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_9 ? T_9 extends U[K_4] ? T_9 extends readonly any[] ? Exclude<keyof T_9, keyof any[]> extends never ? {
|
|
293
|
+
[k: number]: T_9[number];
|
|
294
|
+
} : Omit<T_9, keyof any[]> : T_9 : never : never) ? T_8 extends never ? T_8 : { [P_3 in keyof T_8 as (<T_9>() => T_9 extends { [Q in P_3]: T_8[P_3]; } ? 1 : 2) extends <T_9>() => T_9 extends { -readonly [Q in P_3]: T_8[P_3]; } ? 1 : 2 ? P_3 : never]: T_8[P_3]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: U[K_5] extends infer T_10 ? T_10 extends U[K_5] ? T_10 extends never ? { [P_4 in K_5]: T_10; } : T_10 extends object ? { [P_5 in keyof T_10 as `${Extract<K_5, string | number>}.${Extract<P_5, string | number>}`]: T_10[P_5]; } : { [P_6 in K_5]: T_10; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_6 in keyof I]: I[K_6]; } : never : U : never) extends infer T_10 ? T_10 extends (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_11 ? T_11 extends U[K_4] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
|
|
295
|
+
[k: number]: T_11[number];
|
|
296
|
+
} : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_13 ? T_13 extends U[K_4] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
|
|
297
|
+
[k: number]: T_13[number];
|
|
298
|
+
} : Omit<T_13, keyof any[]> : T_13 : never : never) ? T_12 extends never ? T_12 : { [P_7 in keyof T_12 as (<T_13>() => T_13 extends { [Q in P_7]: T_12[P_7]; } ? 1 : 2) extends <T_13>() => T_13 extends { -readonly [Q in P_7]: T_12[P_7]; } ? 1 : 2 ? P_7 : never]: T_12[P_7]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: U[K_5] extends infer T_14 ? T_14 extends U[K_5] ? T_14 extends never ? { [P_8 in K_5]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_5, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_5]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_6 in keyof I]: I[K_6]; } : never : U : never) ? T_10 extends never ? { [P_4 in K_4]: T_10; } : T_10 extends object ? { [P_5 in keyof T_10 as `${Extract<K_4, string | number>}.${Extract<P_5, string | number>}`]: T_10[P_5]; } : { [P_6 in K_4]: T_10; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) extends infer T_7 ? T_7 extends (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_8 ? T_8 extends U[K_3] ? T_8 extends readonly any[] ? Exclude<keyof T_8, keyof any[]> extends never ? {
|
|
299
|
+
[k: number]: T_8[number];
|
|
300
|
+
} : Omit<T_8, keyof any[]> : T_8 : never : never) extends infer T_9 ? T_9 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_10 ? T_10 extends U[K_3] ? T_10 extends readonly any[] ? Exclude<keyof T_10, keyof any[]> extends never ? {
|
|
301
|
+
[k: number]: T_10[number];
|
|
302
|
+
} : Omit<T_10, keyof any[]> : T_10 : never : never) ? T_9 extends never ? T_9 : { [P_6 in keyof T_9 as (<T_10>() => T_10 extends { [Q in P_6]: T_9[P_6]; } ? 1 : 2) extends <T_10>() => T_10 extends { -readonly [Q in P_6]: T_9[P_6]; } ? 1 : 2 ? P_6 : never]: T_9[P_6]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_4 in keyof U]-?: (x: (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_11 ? T_11 extends U[K_4] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
|
|
303
|
+
[k: number]: T_11[number];
|
|
304
|
+
} : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_13 ? T_13 extends U[K_4] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
|
|
305
|
+
[k: number]: T_13[number];
|
|
306
|
+
} : Omit<T_13, keyof any[]> : T_13 : never : never) ? T_12 extends never ? T_12 : { [P_7 in keyof T_12 as (<T_13>() => T_13 extends { [Q in P_7]: T_12[P_7]; } ? 1 : 2) extends <T_13>() => T_13 extends { -readonly [Q in P_7]: T_12[P_7]; } ? 1 : 2 ? P_7 : never]: T_12[P_7]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_14 ? T_14 extends U[K_6] ? T_14 extends never ? { [P_8 in K_6]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_6, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_6]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) extends infer T_14 ? T_14 extends (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_15 ? T_15 extends U[K_4] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
|
|
307
|
+
[k: number]: T_15[number];
|
|
308
|
+
} : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_17 ? T_17 extends U[K_4] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
|
|
309
|
+
[k: number]: T_17[number];
|
|
310
|
+
} : Omit<T_17, keyof any[]> : T_17 : never : never) ? T_16 extends never ? T_16 : { [P_11 in keyof T_16 as (<T_17>() => T_17 extends { [Q in P_11]: T_16[P_11]; } ? 1 : 2) extends <T_17>() => T_17 extends { -readonly [Q in P_11]: T_16[P_11]; } ? 1 : 2 ? P_11 : never]: T_16[P_11]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_18 ? T_18 extends U[K_6] ? T_18 extends never ? { [P_12 in K_6]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_6, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_6]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) ? T_14 extends never ? { [P_8 in K_4]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_4, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_4]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) ? T_7 extends never ? { [P_3 in K_3]: T_7; } : T_7 extends object ? { [P_4 in keyof T_7 as `${Extract<K_3, string | number>}.${Extract<P_4, string | number>}`]: T_7[P_4]; } : { [P_5 in K_3]: T_7; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_4 ? T_4 extends (((0 extends 1 & U[K_1] ? unknown : U[K_1] extends infer T_5 ? T_5 extends U[K_1] ? T_5 extends readonly any[] ? Exclude<keyof T_5, keyof any[]> extends never ? {
|
|
311
|
+
[k: number]: T_5[number];
|
|
312
|
+
} : Omit<T_5, keyof any[]> : T_5 : never : never) extends infer T_6 ? T_6 extends (0 extends 1 & U[K_1] ? unknown : U[K_1] extends infer T_7 ? T_7 extends U[K_1] ? T_7 extends readonly any[] ? Exclude<keyof T_7, keyof any[]> extends never ? {
|
|
313
|
+
[k: number]: T_7[number];
|
|
314
|
+
} : Omit<T_7, keyof any[]> : T_7 : never : never) ? T_6 extends never ? T_6 : { [P_5 in keyof T_6 as (<T_7>() => T_7 extends { [Q in P_5]: T_6[P_5]; } ? 1 : 2) extends <T_7>() => T_7 extends { -readonly [Q in P_5]: T_6[P_5]; } ? 1 : 2 ? P_5 : never]: T_6[P_5]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_3 in keyof U]-?: (x: (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_8 ? T_8 extends U[K_3] ? T_8 extends readonly any[] ? Exclude<keyof T_8, keyof any[]> extends never ? {
|
|
315
|
+
[k: number]: T_8[number];
|
|
316
|
+
} : Omit<T_8, keyof any[]> : T_8 : never : never) extends infer T_9 ? T_9 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_10 ? T_10 extends U[K_3] ? T_10 extends readonly any[] ? Exclude<keyof T_10, keyof any[]> extends never ? {
|
|
317
|
+
[k: number]: T_10[number];
|
|
318
|
+
} : Omit<T_10, keyof any[]> : T_10 : never : never) ? T_9 extends never ? T_9 : { [P_6 in keyof T_9 as (<T_10>() => T_10 extends { [Q in P_6]: T_9[P_6]; } ? 1 : 2) extends <T_10>() => T_10 extends { -readonly [Q in P_6]: T_9[P_6]; } ? 1 : 2 ? P_6 : never]: T_9[P_6]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_11 ? T_11 extends U[K_5] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
|
|
319
|
+
[k: number]: T_11[number];
|
|
320
|
+
} : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_13 ? T_13 extends U[K_5] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
|
|
321
|
+
[k: number]: T_13[number];
|
|
322
|
+
} : Omit<T_13, keyof any[]> : T_13 : never : never) ? T_12 extends never ? T_12 : { [P_7 in keyof T_12 as (<T_13>() => T_13 extends { [Q in P_7]: T_12[P_7]; } ? 1 : 2) extends <T_13>() => T_13 extends { -readonly [Q in P_7]: T_12[P_7]; } ? 1 : 2 ? P_7 : never]: T_12[P_7]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_14 ? T_14 extends U[K_6] ? T_14 extends never ? { [P_8 in K_6]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_6, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_6]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_14 ? T_14 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_15 ? T_15 extends U[K_5] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
|
|
323
|
+
[k: number]: T_15[number];
|
|
324
|
+
} : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_17 ? T_17 extends U[K_5] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
|
|
325
|
+
[k: number]: T_17[number];
|
|
326
|
+
} : Omit<T_17, keyof any[]> : T_17 : never : never) ? T_16 extends never ? T_16 : { [P_11 in keyof T_16 as (<T_17>() => T_17 extends { [Q in P_11]: T_16[P_11]; } ? 1 : 2) extends <T_17>() => T_17 extends { -readonly [Q in P_11]: T_16[P_11]; } ? 1 : 2 ? P_11 : never]: T_16[P_11]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_18 ? T_18 extends U[K_6] ? T_18 extends never ? { [P_12 in K_6]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_6, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_6]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_14 extends never ? { [P_8 in K_5]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_5, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_5]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_11 ? T_11 extends (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_12 ? T_12 extends U[K_3] ? T_12 extends readonly any[] ? Exclude<keyof T_12, keyof any[]> extends never ? {
|
|
327
|
+
[k: number]: T_12[number];
|
|
328
|
+
} : Omit<T_12, keyof any[]> : T_12 : never : never) extends infer T_13 ? T_13 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_14 ? T_14 extends U[K_3] ? T_14 extends readonly any[] ? Exclude<keyof T_14, keyof any[]> extends never ? {
|
|
329
|
+
[k: number]: T_14[number];
|
|
330
|
+
} : Omit<T_14, keyof any[]> : T_14 : never : never) ? T_13 extends never ? T_13 : { [P_10 in keyof T_13 as (<T_14>() => T_14 extends { [Q in P_10]: T_13[P_10]; } ? 1 : 2) extends <T_14>() => T_14 extends { -readonly [Q in P_10]: T_13[P_10]; } ? 1 : 2 ? P_10 : never]: T_13[P_10]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_15 ? T_15 extends U[K_5] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
|
|
331
|
+
[k: number]: T_15[number];
|
|
332
|
+
} : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_17 ? T_17 extends U[K_5] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
|
|
333
|
+
[k: number]: T_17[number];
|
|
334
|
+
} : Omit<T_17, keyof any[]> : T_17 : never : never) ? T_16 extends never ? T_16 : { [P_11 in keyof T_16 as (<T_17>() => T_17 extends { [Q in P_11]: T_16[P_11]; } ? 1 : 2) extends <T_17>() => T_17 extends { -readonly [Q in P_11]: T_16[P_11]; } ? 1 : 2 ? P_11 : never]: T_16[P_11]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_18 ? T_18 extends U[K_6] ? T_18 extends never ? { [P_12 in K_6]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_6, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_6]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_18 ? T_18 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_19 ? T_19 extends U[K_5] ? T_19 extends readonly any[] ? Exclude<keyof T_19, keyof any[]> extends never ? {
|
|
335
|
+
[k: number]: T_19[number];
|
|
336
|
+
} : Omit<T_19, keyof any[]> : T_19 : never : never) extends infer T_20 ? T_20 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_21 ? T_21 extends U[K_5] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
|
|
337
|
+
[k: number]: T_21[number];
|
|
338
|
+
} : Omit<T_21, keyof any[]> : T_21 : never : never) ? T_20 extends never ? T_20 : { [P_15 in keyof T_20 as (<T_21>() => T_21 extends { [Q in P_15]: T_20[P_15]; } ? 1 : 2) extends <T_21>() => T_21 extends { -readonly [Q in P_15]: T_20[P_15]; } ? 1 : 2 ? P_15 : never]: T_20[P_15]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_22 ? T_22 extends U[K_6] ? T_22 extends never ? { [P_16 in K_6]: T_22; } : T_22 extends object ? { [P_17 in keyof T_22 as `${Extract<K_6, string | number>}.${Extract<P_17, string | number>}`]: T_22[P_17]; } : { [P_18 in K_6]: T_22; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_18 extends never ? { [P_12 in K_5]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_5, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_5]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_11 extends never ? { [P_7 in K_3]: T_11; } : T_11 extends object ? { [P_8 in keyof T_11 as `${Extract<K_3, string | number>}.${Extract<P_8, string | number>}`]: T_11[P_8]; } : { [P_9 in K_3]: T_11; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_4 extends never ? { [P_2 in K_1]: T_4; } : T_4 extends object ? { [P_3 in keyof T_4 as `${Extract<K_1, string | number>}.${Extract<P_3, string | number>}`]: T_4[P_3]; } : { [P_4 in K_1]: T_4; } : never : never) => void; }[keyof U] | ((x: U) => void) extends (x: infer I) => void ? { [K_2 in keyof I]: I[K_2]; } : never : U : never)[any][];
|
|
177
339
|
protected innerSplice<StateType, DeepKeyType extends keyof Flatten<StateType>, ArrayType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, start: number, deleteCount?: number): ArrayType[];
|
|
178
340
|
}
|
|
@@ -148,6 +148,17 @@ export class AppStateStorage extends BaseObjectWithGlobalDispatcher {
|
|
|
148
148
|
return this.innerGetValue({}, key);
|
|
149
149
|
};
|
|
150
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Use with pre-computed Flatten types to avoid repeated type instantiation.
|
|
153
|
+
* @example
|
|
154
|
+
* type MyPaths = Flatten<MyState, 6>;
|
|
155
|
+
* appStateStorage().getValuePrecomputed<MyPaths>()("deep.path");
|
|
156
|
+
*/
|
|
157
|
+
getValuePrecomputed() {
|
|
158
|
+
return (key) => {
|
|
159
|
+
return this.getValue()(key);
|
|
160
|
+
};
|
|
161
|
+
}
|
|
151
162
|
innerGetValue(stateForTypings, deepKey) {
|
|
152
163
|
let result;
|
|
153
164
|
const pathsHelperData = this.getPathsHelperData(deepKey, null);
|
|
@@ -206,6 +217,17 @@ export class AppStateStorage extends BaseObjectWithGlobalDispatcher {
|
|
|
206
217
|
this.innerSubstitute({}, key, value);
|
|
207
218
|
};
|
|
208
219
|
}
|
|
220
|
+
/**
|
|
221
|
+
* Use with pre-computed Flatten types to avoid repeated type instantiation.
|
|
222
|
+
* @example
|
|
223
|
+
* type MyPaths = Flatten<MyState, 6>;
|
|
224
|
+
* appStateStorage().substitutePrecomputed<MyPaths>()("deep.path", value);
|
|
225
|
+
*/
|
|
226
|
+
substitutePrecomputed() {
|
|
227
|
+
return (key, value) => {
|
|
228
|
+
this.substitute()(key, value);
|
|
229
|
+
};
|
|
230
|
+
}
|
|
209
231
|
innerSubstitute(stateForTypings, deepKey, value) {
|
|
210
232
|
const config = {
|
|
211
233
|
changeType: AppStateChangeType.SUBSTITUTE,
|
|
@@ -222,6 +244,17 @@ export class AppStateStorage extends BaseObjectWithGlobalDispatcher {
|
|
|
222
244
|
this.innerChange({}, key, value);
|
|
223
245
|
};
|
|
224
246
|
}
|
|
247
|
+
/**
|
|
248
|
+
* Use with pre-computed Flatten types to avoid repeated type instantiation.
|
|
249
|
+
* @example
|
|
250
|
+
* type MyPaths = Flatten<MyState, 6>;
|
|
251
|
+
* appStateStorage().changePrecomputed<MyPaths>()("deep.path", value);
|
|
252
|
+
*/
|
|
253
|
+
changePrecomputed() {
|
|
254
|
+
return (key, value) => {
|
|
255
|
+
this.change()(key, value);
|
|
256
|
+
};
|
|
257
|
+
}
|
|
225
258
|
innerChange(stateForTypings, deepKey, value) {
|
|
226
259
|
const config = {
|
|
227
260
|
changeType: AppStateChangeType.CHANGE,
|
|
@@ -238,6 +271,17 @@ export class AppStateStorage extends BaseObjectWithGlobalDispatcher {
|
|
|
238
271
|
return this.innerDelete({}, key);
|
|
239
272
|
};
|
|
240
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
* Use with pre-computed Flatten types to avoid repeated type instantiation.
|
|
276
|
+
* @example
|
|
277
|
+
* type MyPaths = Flatten<MyState, 6>;
|
|
278
|
+
* appStateStorage().deletePrecomputed<MyPaths>()("deep.path");
|
|
279
|
+
*/
|
|
280
|
+
deletePrecomputed() {
|
|
281
|
+
return (key) => {
|
|
282
|
+
return this.delete()(key);
|
|
283
|
+
};
|
|
284
|
+
}
|
|
241
285
|
innerDelete(stateForTypings, deepKey) {
|
|
242
286
|
const config = {
|
|
243
287
|
changeType: AppStateChangeType.DELETE
|
|
@@ -253,6 +297,17 @@ export class AppStateStorage extends BaseObjectWithGlobalDispatcher {
|
|
|
253
297
|
return this.innerPush({}, key, ...elements);
|
|
254
298
|
};
|
|
255
299
|
}
|
|
300
|
+
/**
|
|
301
|
+
* Use with pre-computed Flatten types to avoid repeated type instantiation.
|
|
302
|
+
* @example
|
|
303
|
+
* type MyPaths = Flatten<MyState, 6>;
|
|
304
|
+
* appStateStorage().pushPrecomputed<MyPaths>()("deep.array.path", element1, element2);
|
|
305
|
+
*/
|
|
306
|
+
pushPrecomputed() {
|
|
307
|
+
return (key, ...elements) => {
|
|
308
|
+
return this.push()(key, ...elements);
|
|
309
|
+
};
|
|
310
|
+
}
|
|
256
311
|
innerPush(stateForTypings, deepKey, ...elements) {
|
|
257
312
|
const config = {
|
|
258
313
|
changeType: AppStateChangeType.PUSH,
|
|
@@ -269,6 +324,17 @@ export class AppStateStorage extends BaseObjectWithGlobalDispatcher {
|
|
|
269
324
|
return this.innerSplice({}, key, start, deleteCount);
|
|
270
325
|
};
|
|
271
326
|
}
|
|
327
|
+
/**
|
|
328
|
+
* Use with pre-computed Flatten types to avoid repeated type instantiation.
|
|
329
|
+
* @example
|
|
330
|
+
* type MyPaths = Flatten<MyState, 6>;
|
|
331
|
+
* appStateStorage().splicePrecomputed<MyPaths>()("deep.array.path", 0, 1);
|
|
332
|
+
*/
|
|
333
|
+
splicePrecomputed() {
|
|
334
|
+
return (key, start, deleteCount) => {
|
|
335
|
+
return this.splice()(key, start, deleteCount);
|
|
336
|
+
};
|
|
337
|
+
}
|
|
272
338
|
innerSplice(stateForTypings, deepKey, start, deleteCount) {
|
|
273
339
|
if (deleteCount === undefined) {
|
|
274
340
|
deleteCount = Number.MAX_SAFE_INTEGER;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppStateStorage.js","sourceRoot":"","sources":["../../../src/state/data/AppStateStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAKrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,MAAM,OAAO,eAAgB,SAAQ,8BAA8B;IAAnE;;QA+Bc,kBAAa,GAAY,KAAK,CAAC;QAE/B,UAAK,GAAW,EAAE,CAAC;QAEnB,yBAAoB,GAAiD,EAAE,CAAC;QAExE,mBAAc,GAAqB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"AppStateStorage.js","sourceRoot":"","sources":["../../../src/state/data/AppStateStorage.ts"],"names":[],"mappings":"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"}
|