@flashist/appframework 0.0.348 → 0.0.350

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/index.d.ts CHANGED
@@ -84,6 +84,8 @@ export * from './state/data/DeepTypeUtils';
84
84
  export * from './state/data/IAppStateChangeConfigVO';
85
85
  export * from './state/data/IChangeWrapper';
86
86
  export * from './state/data/IPreChangeHook';
87
+ export * from './state/data/StatePath';
88
+ export * from './state/data/StatePathProxy';
87
89
  export * from './state/tools/AppStateDeepKeyTools';
88
90
  export * from './state/tools/AppStateEventChangeTools';
89
91
  export * from './state/tools/INestedPathHelperVO';
package/index.js CHANGED
@@ -84,6 +84,8 @@ export * from './state/data/DeepTypeUtils';
84
84
  export * from './state/data/IAppStateChangeConfigVO';
85
85
  export * from './state/data/IChangeWrapper';
86
86
  export * from './state/data/IPreChangeHook';
87
+ export * from './state/data/StatePath';
88
+ export * from './state/data/StatePathProxy';
87
89
  export * from './state/tools/AppStateDeepKeyTools';
88
90
  export * from './state/tools/AppStateEventChangeTools';
89
91
  export * from './state/tools/INestedPathHelperVO';
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oCAAoC,CAAC;AACnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qDAAqD,CAAC;AACpE,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qCAAqC,CAAC;AACpD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC;AACxD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qDAAqD,CAAC;AACpE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yDAAyD,CAAC;AACxE,cAAc,0DAA0D,CAAC;AACzE,cAAc,sEAAsE,CAAC;AACrF,cAAc,+DAA+D,CAAC;AAC9E,cAAc,2DAA2D,CAAC;AAC1E,cAAc,6DAA6D,CAAC;AAC5E,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kDAAkD,CAAC;AACjE,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kCAAkC,CAAC;AACjD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uDAAuD,CAAC;AACtE,cAAc,iDAAiD,CAAC;AAChE,cAAc,uDAAuD,CAAC;AACtE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,+DAA+D,CAAC;AAC9E,cAAc,iDAAiD,CAAC;AAChE,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,mDAAmD,CAAC;AAClE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8DAA8D,CAAC;AAC7E,cAAc,oEAAoE,CAAC;AACnF,cAAc,mEAAmE,CAAC;AAClF,cAAc,0DAA0D,CAAC;AACzE,cAAc,mDAAmD,CAAC;AAClE,cAAc,uDAAuD,CAAC;AACtE,cAAc,0CAA0C,CAAC;AACzD,cAAc,+CAA+C,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,10 @@
1
1
  {
2
2
  "name": "@flashist/appframework",
3
- "version": "0.0.348",
3
+ "version": "0.0.350",
4
4
  "scripts": {
5
5
  "build": "gulp",
6
+ "test": "vitest run",
7
+ "test:watch": "vitest",
6
8
  "publish:patch": "npm version patch && npm run build && cd ./dist && npm publish",
7
9
  "publish:minor": "npm version minor && npm run build && cd ./dist && npm publish",
8
10
  "publish:major": "npm version major && npm run build && cd ./dist && npm publish"
@@ -22,6 +24,7 @@
22
24
  "@flashist/fbuildscripts": "^0.0.67",
23
25
  "gsap": "^3.12.7",
24
26
  "pixi.js": "^8.8.1",
25
- "typescript": "^5.8.2"
27
+ "typescript": "^5.8.2",
28
+ "vitest": "^4.0.18"
26
29
  }
27
30
  }
@@ -6,7 +6,9 @@ import { IPreChangeHook } from "./IPreChangeHook";
6
6
  import { IAppStateChangeConfigVO } from "./IAppStateChangeConfigVO";
7
7
  import { DeepPartial } from "./DeepPartialTypings";
8
8
  import { DefaultFlattenDepth } from "./DeepTypeUtils";
9
- export declare class AppStateStorage extends BaseObjectWithGlobalDispatcher {
9
+ import { IStatePathStorage } from "./StatePath";
10
+ import { StatePathProxy } from "./StatePathProxy";
11
+ export declare class AppStateStorage extends BaseObjectWithGlobalDispatcher implements IStatePathStorage {
10
12
  /**
11
13
  * The purpose of the method is to "prepare" a "wrapper" of a part of a state,
12
14
  * to avoid constant writings of the full path. So instead of:
@@ -337,4 +339,32 @@ export declare class AppStateStorage extends BaseObjectWithGlobalDispatcher {
337
339
  [k: number]: T_21[number];
338
340
  } : 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][];
339
341
  protected innerSplice<StateType, DeepKeyType extends keyof Flatten<StateType>, ArrayType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, start: number, deleteCount?: number): ArrayType[];
342
+ /**
343
+ * Type-safe path builder for state access.
344
+ * Builds paths incrementally to avoid type explosion with arrays.
345
+ *
346
+ * @example
347
+ * // Access nested properties:
348
+ * storage.$<MyState>().user.profile.name.set("John");
349
+ *
350
+ * // Access array elements (no type explosion!):
351
+ * storage.$<MyState>().items.at(0).value.set(42);
352
+ *
353
+ * // Get values:
354
+ * const name = storage.$<MyState>().user.name.get();
355
+ *
356
+ * // Chain deeply:
357
+ * storage.$<MyState>().game.levels.at(currentLevel).enemies.at(enemyIndex).health.set(100);
358
+ *
359
+ * // Get the path string (for debugging or events):
360
+ * const path = storage.$<MyState>().user.profile.name.path; // "user.profile.name"
361
+ */
362
+ $<StateType extends object>(): StatePathProxy<StateType, StateType>;
363
+ getValueByPath(path: string): any;
364
+ changeByPath(path: string, value: any): void;
365
+ substituteByPath(path: string, value: any): void;
366
+ deleteByPath(path: string): any;
367
+ pushByPath(path: string, ...elements: any[]): void;
368
+ spliceByPath(path: string, start: number, deleteCount?: number): any[];
369
+ protected processStateActionByPath(path: string, config: IAppStateChangeConfigVO): any;
340
370
  }
@@ -3,6 +3,7 @@ import { BaseObjectWithGlobalDispatcher } from "../../base/BaseObjectWithGlobalD
3
3
  import { AppStateEventChangeTools } from "../tools/AppStateEventChangeTools";
4
4
  import { AppStateDeepKeyTools } from "../tools/AppStateDeepKeyTools";
5
5
  import { AppStateChangeType } from "./AppStateChangeType";
6
+ import { createStatePathProxy } from "./StatePathProxy";
6
7
  export class AppStateStorage extends BaseObjectWithGlobalDispatcher {
7
8
  constructor() {
8
9
  super(...arguments);
@@ -10,63 +11,6 @@ export class AppStateStorage extends BaseObjectWithGlobalDispatcher {
10
11
  this.state = {};
11
12
  this.pathsHelperDataCache = {};
12
13
  this.preChangeHooks = [];
13
- // SPLICE: END
14
- // // public change<StateType extends object, ChangeType>(nestedPaths: ObjectNestedPathsType<StateType>, value: ChangeType): void {
15
- // public change<StateType, DeepKeyType extends keyof Flatten<StateType>>(obj: StateType, key: DeepKeyType, value: Flatten<StateType>[DeepKeyType]): void {
16
- // // AS ANY needed to calm compiler and autocomplete
17
- // let tempObject: StateType = this.state as any;
18
- // const pathsHelperData: IDeepKeyHelperVO = this.getPathsHelperData(nestedPaths as any);
19
- // let nestedPathsCount: number = pathsHelperData.splitDeepKeyParts.length;
20
- // for (let nestedPathIndex: number = 0; nestedPathIndex < nestedPathsCount; nestedPathIndex++) {
21
- // const singlePath: string | number = pathsHelperData.splitDeepKeyParts[nestedPathIndex];
22
- // if (nestedPathIndex === (nestedPathsCount - 1)) {
23
- // // tempObject[singlePath] = value;
24
- // ObjectTools.copySinglePropFromValue(tempObject, singlePath as string, value);
25
- // } else {
26
- // tempObject = tempObject[singlePath];
27
- // }
28
- // }
29
- // this.dispatchChangeEvents(pathsHelperData);
30
- // }
31
- // public delete<StateType extends object>(nestedPaths: ObjectNestedPathsType<StateType>): void {
32
- // // AS ANY needed to calm compiler and autocomplete
33
- // let tempObject: StateType = this.state as any;
34
- // const pathsHelperData: IDeepKeyHelperVO = this.getPathsHelperData(nestedPaths as any);
35
- // let nestedPathsCount: number = pathsHelperData.splitDeepKeyParts.length;
36
- // for (let nestedPathIndex: number = 0; nestedPathIndex < nestedPathsCount; nestedPathIndex++) {
37
- // const singlePath: string | number = pathsHelperData.splitDeepKeyParts[nestedPathIndex];
38
- // if (nestedPathIndex === (nestedPathsCount - 1)) {
39
- // delete tempObject[singlePath];
40
- // } else {
41
- // tempObject = tempObject[singlePath];
42
- // }
43
- // }
44
- // this.dispatchChangeEvents(pathsHelperData);
45
- // }
46
- // public addElements<StateType extends object, ElementType>(nestedPaths: ObjectNestedPathsType<StateType>, ...elements: ElementType[]): void {
47
- // // AS ANY needed to calm compiler and autocomplete
48
- // let tempObject: StateType = this.state as any;
49
- // const pathsHelperData: IDeepKeyHelperVO = this.getPathsHelperData(nestedPaths as any);
50
- // let nestedPathsCount: number = pathsHelperData.splitDeepKeyParts.length;
51
- // for (let nestedPathIndex: number = 0; nestedPathIndex < nestedPathsCount; nestedPathIndex++) {
52
- // const singlePath: string | number = pathsHelperData.splitDeepKeyParts[nestedPathIndex];
53
- // tempObject = tempObject[singlePath];
54
- // }
55
- // (tempObject as Array<ElementType>).push(...elements);
56
- // this.dispatchChangeEvents(pathsHelperData);
57
- // }
58
- // public removeElements<StateType extends object, ElementType>(nestedPaths: ObjectNestedPathsType<StateType>, ...elements: ElementType[]): void {
59
- // // AS ANY needed to calm compiler and autocomplete
60
- // let tempObject: StateType = this.state as any;
61
- // const pathsHelperData: IDeepKeyHelperVO = this.getPathsHelperData(nestedPaths as any);
62
- // let nestedPathsCount: number = pathsHelperData.splitDeepKeyParts.length;
63
- // for (let nestedPathIndex: number = 0; nestedPathIndex < nestedPathsCount; nestedPathIndex++) {
64
- // const singlePath: string | number = pathsHelperData.splitDeepKeyParts[nestedPathIndex];
65
- // tempObject = tempObject[singlePath];
66
- // }
67
- // ArrayTools.removeItems((tempObject as Array<ElementType>), elements);
68
- // this.dispatchChangeEvents(pathsHelperData);
69
- // }
70
14
  }
71
15
  /**
72
16
  * The purpose of the method is to "prepare" a "wrapper" of a part of a state,
@@ -348,5 +292,168 @@ export class AppStateStorage extends BaseObjectWithGlobalDispatcher {
348
292
  this.triggerPreChangeHooks(stateForTypings, deepKey, config);
349
293
  return this.processStateAction(stateForTypings, deepKey, config);
350
294
  }
295
+ // SPLICE: END
296
+ // // public change<StateType extends object, ChangeType>(nestedPaths: ObjectNestedPathsType<StateType>, value: ChangeType): void {
297
+ // public change<StateType, DeepKeyType extends keyof Flatten<StateType>>(obj: StateType, key: DeepKeyType, value: Flatten<StateType>[DeepKeyType]): void {
298
+ // // AS ANY needed to calm compiler and autocomplete
299
+ // let tempObject: StateType = this.state as any;
300
+ // const pathsHelperData: IDeepKeyHelperVO = this.getPathsHelperData(nestedPaths as any);
301
+ // let nestedPathsCount: number = pathsHelperData.splitDeepKeyParts.length;
302
+ // for (let nestedPathIndex: number = 0; nestedPathIndex < nestedPathsCount; nestedPathIndex++) {
303
+ // const singlePath: string | number = pathsHelperData.splitDeepKeyParts[nestedPathIndex];
304
+ // if (nestedPathIndex === (nestedPathsCount - 1)) {
305
+ // // tempObject[singlePath] = value;
306
+ // ObjectTools.copySinglePropFromValue(tempObject, singlePath as string, value);
307
+ // } else {
308
+ // tempObject = tempObject[singlePath];
309
+ // }
310
+ // }
311
+ // this.dispatchChangeEvents(pathsHelperData);
312
+ // }
313
+ // public delete<StateType extends object>(nestedPaths: ObjectNestedPathsType<StateType>): void {
314
+ // // AS ANY needed to calm compiler and autocomplete
315
+ // let tempObject: StateType = this.state as any;
316
+ // const pathsHelperData: IDeepKeyHelperVO = this.getPathsHelperData(nestedPaths as any);
317
+ // let nestedPathsCount: number = pathsHelperData.splitDeepKeyParts.length;
318
+ // for (let nestedPathIndex: number = 0; nestedPathIndex < nestedPathsCount; nestedPathIndex++) {
319
+ // const singlePath: string | number = pathsHelperData.splitDeepKeyParts[nestedPathIndex];
320
+ // if (nestedPathIndex === (nestedPathsCount - 1)) {
321
+ // delete tempObject[singlePath];
322
+ // } else {
323
+ // tempObject = tempObject[singlePath];
324
+ // }
325
+ // }
326
+ // this.dispatchChangeEvents(pathsHelperData);
327
+ // }
328
+ // public addElements<StateType extends object, ElementType>(nestedPaths: ObjectNestedPathsType<StateType>, ...elements: ElementType[]): void {
329
+ // // AS ANY needed to calm compiler and autocomplete
330
+ // let tempObject: StateType = this.state as any;
331
+ // const pathsHelperData: IDeepKeyHelperVO = this.getPathsHelperData(nestedPaths as any);
332
+ // let nestedPathsCount: number = pathsHelperData.splitDeepKeyParts.length;
333
+ // for (let nestedPathIndex: number = 0; nestedPathIndex < nestedPathsCount; nestedPathIndex++) {
334
+ // const singlePath: string | number = pathsHelperData.splitDeepKeyParts[nestedPathIndex];
335
+ // tempObject = tempObject[singlePath];
336
+ // }
337
+ // (tempObject as Array<ElementType>).push(...elements);
338
+ // this.dispatchChangeEvents(pathsHelperData);
339
+ // }
340
+ // public removeElements<StateType extends object, ElementType>(nestedPaths: ObjectNestedPathsType<StateType>, ...elements: ElementType[]): void {
341
+ // // AS ANY needed to calm compiler and autocomplete
342
+ // let tempObject: StateType = this.state as any;
343
+ // const pathsHelperData: IDeepKeyHelperVO = this.getPathsHelperData(nestedPaths as any);
344
+ // let nestedPathsCount: number = pathsHelperData.splitDeepKeyParts.length;
345
+ // for (let nestedPathIndex: number = 0; nestedPathIndex < nestedPathsCount; nestedPathIndex++) {
346
+ // const singlePath: string | number = pathsHelperData.splitDeepKeyParts[nestedPathIndex];
347
+ // tempObject = tempObject[singlePath];
348
+ // }
349
+ // ArrayTools.removeItems((tempObject as Array<ElementType>), elements);
350
+ // this.dispatchChangeEvents(pathsHelperData);
351
+ // }
352
+ // =========================================================================
353
+ // PATH BUILDER API
354
+ // =========================================================================
355
+ /**
356
+ * Type-safe path builder for state access.
357
+ * Builds paths incrementally to avoid type explosion with arrays.
358
+ *
359
+ * @example
360
+ * // Access nested properties:
361
+ * storage.$<MyState>().user.profile.name.set("John");
362
+ *
363
+ * // Access array elements (no type explosion!):
364
+ * storage.$<MyState>().items.at(0).value.set(42);
365
+ *
366
+ * // Get values:
367
+ * const name = storage.$<MyState>().user.name.get();
368
+ *
369
+ * // Chain deeply:
370
+ * storage.$<MyState>().game.levels.at(currentLevel).enemies.at(enemyIndex).health.set(100);
371
+ *
372
+ * // Get the path string (for debugging or events):
373
+ * const path = storage.$<MyState>().user.profile.name.path; // "user.profile.name"
374
+ */
375
+ $() {
376
+ return createStatePathProxy(this);
377
+ }
378
+ // === Path-based Internal Methods (for IStatePathStorage interface) ===
379
+ getValueByPath(path) {
380
+ const helperData = this.getPathsHelperData(path, null);
381
+ let current = this.state;
382
+ for (const part of helperData.splitDeepKeyParts) {
383
+ current = current[part];
384
+ }
385
+ return current;
386
+ }
387
+ changeByPath(path, value) {
388
+ const config = {
389
+ changeType: AppStateChangeType.CHANGE,
390
+ value: value
391
+ };
392
+ this.processStateActionByPath(path, config);
393
+ }
394
+ substituteByPath(path, value) {
395
+ const config = {
396
+ changeType: AppStateChangeType.SUBSTITUTE,
397
+ value: value
398
+ };
399
+ this.processStateActionByPath(path, config);
400
+ }
401
+ deleteByPath(path) {
402
+ const config = {
403
+ changeType: AppStateChangeType.DELETE
404
+ };
405
+ return this.processStateActionByPath(path, config);
406
+ }
407
+ pushByPath(path, ...elements) {
408
+ const config = {
409
+ changeType: AppStateChangeType.PUSH,
410
+ elements: elements
411
+ };
412
+ this.processStateActionByPath(path, config);
413
+ }
414
+ spliceByPath(path, start, deleteCount) {
415
+ if (deleteCount === undefined) {
416
+ deleteCount = Number.MAX_SAFE_INTEGER;
417
+ }
418
+ const config = {
419
+ changeType: AppStateChangeType.SPLICE,
420
+ start: start,
421
+ deleteCount: deleteCount
422
+ };
423
+ return this.processStateActionByPath(path, config);
424
+ }
425
+ processStateActionByPath(path, config) {
426
+ let result;
427
+ const pathsHelperData = this.getPathsHelperData(path, config);
428
+ let tempObject = this.state;
429
+ let nestedPathsCount = pathsHelperData.splitDeepKeyParts.length;
430
+ for (let nestedPathIndex = 0; nestedPathIndex < nestedPathsCount; nestedPathIndex++) {
431
+ const singlePath = pathsHelperData.splitDeepKeyParts[nestedPathIndex];
432
+ if (nestedPathIndex === (nestedPathsCount - 1)) {
433
+ if (config.changeType === AppStateChangeType.SUBSTITUTE) {
434
+ delete tempObject[singlePath];
435
+ ObjectTools.copySinglePropFromValue(tempObject, singlePath, config.value);
436
+ }
437
+ else if (config.changeType === AppStateChangeType.CHANGE) {
438
+ ObjectTools.copySinglePropFromValue(tempObject, singlePath, config.value);
439
+ }
440
+ else if (config.changeType === AppStateChangeType.DELETE) {
441
+ result = tempObject[singlePath];
442
+ delete tempObject[singlePath];
443
+ }
444
+ else if (config.changeType === AppStateChangeType.PUSH) {
445
+ tempObject[singlePath].push(...config.elements);
446
+ }
447
+ else if (config.changeType === AppStateChangeType.SPLICE) {
448
+ result = tempObject[singlePath].splice(config.start, config.deleteCount);
449
+ }
450
+ }
451
+ else {
452
+ tempObject = tempObject[singlePath];
453
+ }
454
+ }
455
+ this.dispatchChangeEvents(pathsHelperData);
456
+ return result;
457
+ }
351
458
  }
352
459
  //# sourceMappingURL=AppStateStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppStateStorage.js","sourceRoot":"","sources":["../../../src/state/data/AppStateStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AppStateStorage.js","sourceRoot":"","sources":["../../../src/state/data/AppStateStorage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { DeepPartial } from "./DeepPartialTypings";
2
+ /**
3
+ * Interface for storage operations (implemented by AppStateStorage).
4
+ * Enables the StatePath class to perform actual state operations.
5
+ */
6
+ export interface IStatePathStorage {
7
+ getValueByPath(path: string): any;
8
+ changeByPath(path: string, value: any): void;
9
+ substituteByPath(path: string, value: any): void;
10
+ deleteByPath(path: string): any;
11
+ pushByPath(path: string, ...elements: any[]): void;
12
+ spliceByPath(path: string, start: number, deleteCount?: number): any[];
13
+ }
14
+ /**
15
+ * Type-safe path builder for state access.
16
+ * Builds paths incrementally to avoid type explosion with arrays.
17
+ *
18
+ * @example
19
+ * // Access nested properties:
20
+ * storage.$<MyState>().user.profile.name.set("John");
21
+ *
22
+ * // Access array elements:
23
+ * storage.$<MyState>().items.at(0).value.set(42);
24
+ *
25
+ * // Get values:
26
+ * const name = storage.$<MyState>().user.name.get();
27
+ *
28
+ * @typeParam Root - The root state type (used for type tracking)
29
+ * @typeParam Current - The type at the current path position
30
+ */
31
+ export declare class StatePath<Root, Current> {
32
+ private readonly storage;
33
+ private readonly pathParts;
34
+ constructor(storage: IStatePathStorage, pathParts?: string[]);
35
+ /** Get the built path string (for debugging/events) */
36
+ get path(): string;
37
+ /** Access a property - returns StatePath for the property type */
38
+ prop<K extends keyof Current & (string | number)>(key: K): StatePath<Root, Current[K]>;
39
+ /**
40
+ * Access array element by index - no type explosion since index is runtime.
41
+ * @param index - The array index to access
42
+ */
43
+ at<T = Current extends readonly (infer U)[] ? U : never>(index: number): StatePath<Root, T>;
44
+ /** Get the value at this path */
45
+ get(): Current;
46
+ /** Change (merge) value at this path */
47
+ set(value: DeepPartial<Current>): void;
48
+ /** Substitute (replace) value at this path */
49
+ replace(value: DeepPartial<Current>): void;
50
+ /** Delete value at this path */
51
+ remove(): Current;
52
+ /** Push elements (only when Current is an array) */
53
+ push<T = Current extends readonly (infer U)[] ? U : never>(...elements: T[]): void;
54
+ /** Splice array (only when Current is an array) */
55
+ splice(start: number, deleteCount?: number): any[];
56
+ }
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Type-safe path builder for state access.
3
+ * Builds paths incrementally to avoid type explosion with arrays.
4
+ *
5
+ * @example
6
+ * // Access nested properties:
7
+ * storage.$<MyState>().user.profile.name.set("John");
8
+ *
9
+ * // Access array elements:
10
+ * storage.$<MyState>().items.at(0).value.set(42);
11
+ *
12
+ * // Get values:
13
+ * const name = storage.$<MyState>().user.name.get();
14
+ *
15
+ * @typeParam Root - The root state type (used for type tracking)
16
+ * @typeParam Current - The type at the current path position
17
+ */
18
+ export class StatePath {
19
+ constructor(storage, pathParts = []) {
20
+ this.storage = storage;
21
+ this.pathParts = pathParts;
22
+ }
23
+ /** Get the built path string (for debugging/events) */
24
+ get path() {
25
+ return this.pathParts.join(".");
26
+ }
27
+ /** Access a property - returns StatePath for the property type */
28
+ prop(key) {
29
+ return new StatePath(this.storage, [...this.pathParts, String(key)]);
30
+ }
31
+ /**
32
+ * Access array element by index - no type explosion since index is runtime.
33
+ * @param index - The array index to access
34
+ */
35
+ at(index) {
36
+ return new StatePath(this.storage, [...this.pathParts, String(index)]);
37
+ }
38
+ // === Terminal Operations ===
39
+ /** Get the value at this path */
40
+ get() {
41
+ return this.storage.getValueByPath(this.path);
42
+ }
43
+ /** Change (merge) value at this path */
44
+ set(value) {
45
+ this.storage.changeByPath(this.path, value);
46
+ }
47
+ /** Substitute (replace) value at this path */
48
+ replace(value) {
49
+ this.storage.substituteByPath(this.path, value);
50
+ }
51
+ /** Delete value at this path */
52
+ remove() {
53
+ return this.storage.deleteByPath(this.path);
54
+ }
55
+ // === Array Operations (when Current is an array) ===
56
+ /** Push elements (only when Current is an array) */
57
+ push(...elements) {
58
+ this.storage.pushByPath(this.path, ...elements);
59
+ }
60
+ /** Splice array (only when Current is an array) */
61
+ splice(start, deleteCount) {
62
+ return this.storage.spliceByPath(this.path, start, deleteCount);
63
+ }
64
+ }
65
+ //# sourceMappingURL=StatePath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatePath.js","sourceRoot":"","sources":["../../../src/state/data/StatePath.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,SAAS;IAClB,YACqB,OAA0B,EAC1B,YAAsB,EAAE;QADxB,YAAO,GAAP,OAAO,CAAmB;QAC1B,cAAS,GAAT,SAAS,CAAe;IAC1C,CAAC;IAEJ,uDAAuD;IACvD,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,kEAAkE;IAClE,IAAI,CAA8C,GAAM;QACpD,OAAO,IAAI,SAAS,CAChB,IAAI,CAAC,OAAO,EACZ,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CACnC,CAAC;IACN,CAAC;IAED;;;OAGG;IACH,EAAE,CACE,KAAa;QAEb,OAAO,IAAI,SAAS,CAChB,IAAI,CAAC,OAAO,EACZ,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CACrC,CAAC;IACN,CAAC;IAED,8BAA8B;IAE9B,iCAAiC;IACjC,GAAG;QACC,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,wCAAwC;IACxC,GAAG,CAAC,KAA2B;QAC3B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,8CAA8C;IAC9C,OAAO,CAAC,KAA2B;QAC/B,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,gCAAgC;IAChC,MAAM;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,sDAAsD;IAEtD,oDAAoD;IACpD,IAAI,CACA,GAAG,QAAa;QAEhB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,mDAAmD;IACnD,MAAM,CAAC,KAAa,EAAE,WAAoB;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACpE,CAAC;CACJ"}
@@ -0,0 +1 @@
1
+ export {};