@push.rocks/smartstate 2.0.12 → 2.0.13

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.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@push.rocks/smartstate',
6
- version: '2.0.11',
6
+ version: '2.0.12',
7
7
  description: 'a package that handles state in a good way'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLDRDQUE0QztDQUMxRCxDQUFBIn0=
@@ -1,4 +1,5 @@
1
1
  import { StatePart } from './smartstate.classes.statepart.js';
2
+ export type TInitMode = 'soft' | 'mandatory' | 'force' | 'persistent';
2
3
  /**
3
4
  * Smartstate takes care of providing state
4
5
  */
@@ -16,7 +17,7 @@ export declare class Smartstate<StatePartNameType> {
16
17
  * @param initialArg
17
18
  * @param initMode
18
19
  */
19
- getStatePart<PayloadType>(statePartNameArg: string & StatePartNameType, initialArg?: PayloadType, initMode?: 'soft' | 'mandatory' | 'force' | 'persistent'): StatePart<StatePartNameType, PayloadType>;
20
+ getStatePart<PayloadType>(statePartNameArg: string & StatePartNameType, initialArg?: PayloadType, initMode?: TInitMode): StatePart<StatePartNameType, PayloadType>;
20
21
  /**
21
22
  * creates a statepart
22
23
  * @param statePartName
@@ -27,7 +27,7 @@ export class Smartstate {
27
27
  if (!initialArg) {
28
28
  throw new Error(`${statePartNameArg} does not yet exist, yet you don't provide an initial state`);
29
29
  }
30
- return this.createStatePart(statePartNameArg, initialArg);
30
+ return this.createStatePart(statePartNameArg, initialArg, initMode);
31
31
  }
32
32
  }
33
33
  /**
@@ -35,11 +35,14 @@ export class Smartstate {
35
35
  * @param statePartName
36
36
  * @param initialPayloadArg
37
37
  */
38
- createStatePart(statePartName, initialPayloadArg) {
39
- const newState = new StatePart(statePartName);
38
+ createStatePart(statePartName, initialPayloadArg, initMode) {
39
+ const newState = new StatePart(statePartName, initMode === 'persistent' ? {
40
+ dbName: 'smartstate',
41
+ storeName: statePartName,
42
+ } : null);
40
43
  newState.setState(initialPayloadArg);
41
44
  this.statePartMap[statePartName] = newState;
42
45
  return newState;
43
46
  }
44
47
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdGF0ZS5jbGFzc2VzLnNtYXJ0c3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHN0YXRlLmNsYXNzZXMuc21hcnRzdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUU5RDs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBR3JCO1FBRk8saUJBQVksR0FBeUQsRUFBRSxDQUFDO0lBRWhFLENBQUM7SUFFaEI7Ozs7Ozs7O09BUUc7SUFDSSxZQUFZLENBQ2pCLGdCQUE0QyxFQUM1QyxVQUF3QixFQUN4QixRQUF3RDtRQUV4RCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQXVCLENBQUMsRUFBRTtZQUM5QyxJQUFJLFVBQVUsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLFFBQVEsS0FBSyxNQUFNLENBQUMsRUFBRTtnQkFDcEQsTUFBTSxJQUFJLEtBQUssQ0FDYixHQUFHLGdCQUFnQiw0REFBNEQsQ0FDaEYsQ0FBQzthQUNIO1lBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUE4QyxDQUFDO1NBQ3pGO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNmLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxnQkFBZ0IsNkRBQTZELENBQ2pGLENBQUM7YUFDSDtZQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBYyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUN4RTtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssZUFBZSxDQUNyQixhQUFnQyxFQUNoQyxpQkFBOEI7UUFFOUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxTQUFTLENBQWlDLGFBQWEsQ0FBQyxDQUFDO1FBQzlFLFFBQVEsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQW9CLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDbkQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGIn0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdGF0ZS5jbGFzc2VzLnNtYXJ0c3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHN0YXRlLmNsYXNzZXMuc21hcnRzdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUk5RDs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBR3JCO1FBRk8saUJBQVksR0FBeUQsRUFBRSxDQUFDO0lBRWhFLENBQUM7SUFFaEI7Ozs7Ozs7O09BUUc7SUFDSSxZQUFZLENBQ2pCLGdCQUE0QyxFQUM1QyxVQUF3QixFQUN4QixRQUFvQjtRQUVwQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQXVCLENBQUMsRUFBRTtZQUM5QyxJQUFJLFVBQVUsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLFFBQVEsS0FBSyxNQUFNLENBQUMsRUFBRTtnQkFDcEQsTUFBTSxJQUFJLEtBQUssQ0FDYixHQUFHLGdCQUFnQiw0REFBNEQsQ0FDaEYsQ0FBQzthQUNIO1lBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUE4QyxDQUFDO1NBQ3pGO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNmLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxnQkFBZ0IsNkRBQTZELENBQ2pGLENBQUM7YUFDSDtZQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBYyxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDbEY7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGVBQWUsQ0FDckIsYUFBZ0MsRUFDaEMsaUJBQThCLEVBQzlCLFFBQW9CO1FBRXBCLE1BQU0sUUFBUSxHQUFHLElBQUksU0FBUyxDQUM1QixhQUFhLEVBQ2IsUUFBUSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxFQUFFLFlBQVk7WUFDcEIsU0FBUyxFQUFFLGFBQW9CO1NBQ2hDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDVCxDQUFDO1FBQ0YsUUFBUSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBb0IsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUNuRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0YifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@push.rocks/smartstate",
3
- "version": "2.0.12",
3
+ "version": "2.0.13",
4
4
  "private": false,
5
5
  "description": "a package that handles state in a good way",
6
6
  "main": "dist_ts/index.js",
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@push.rocks/smartstate',
6
- version: '2.0.12',
6
+ version: '2.0.13',
7
7
  description: 'a package that handles state in a good way'
8
8
  }
@@ -1,6 +1,8 @@
1
1
  import * as plugins from './smartstate.plugins.js';
2
2
  import { StatePart } from './smartstate.classes.statepart.js';
3
3
 
4
+ export type TInitMode = 'soft' | 'mandatory' | 'force' | 'persistent';
5
+
4
6
  /**
5
7
  * Smartstate takes care of providing state
6
8
  */
@@ -21,7 +23,7 @@ export class Smartstate<StatePartNameType> {
21
23
  public getStatePart<PayloadType>(
22
24
  statePartNameArg: string & StatePartNameType,
23
25
  initialArg?: PayloadType,
24
- initMode?: 'soft' | 'mandatory' | 'force' | 'persistent'
26
+ initMode?: TInitMode
25
27
  ): StatePart<StatePartNameType, PayloadType> {
26
28
  if (this.statePartMap[statePartNameArg as any]) {
27
29
  if (initialArg && (!initMode || initMode !== 'soft')) {
@@ -36,7 +38,7 @@ export class Smartstate<StatePartNameType> {
36
38
  `${statePartNameArg} does not yet exist, yet you don't provide an initial state`
37
39
  );
38
40
  }
39
- return this.createStatePart<PayloadType>(statePartNameArg, initialArg);
41
+ return this.createStatePart<PayloadType>(statePartNameArg, initialArg, initMode);
40
42
  }
41
43
  }
42
44
 
@@ -47,9 +49,16 @@ export class Smartstate<StatePartNameType> {
47
49
  */
48
50
  private createStatePart<PayloadType>(
49
51
  statePartName: StatePartNameType,
50
- initialPayloadArg: PayloadType
52
+ initialPayloadArg: PayloadType,
53
+ initMode?: TInitMode
51
54
  ): StatePart<StatePartNameType, PayloadType> {
52
- const newState = new StatePart<StatePartNameType, PayloadType>(statePartName);
55
+ const newState = new StatePart<StatePartNameType, PayloadType>(
56
+ statePartName,
57
+ initMode === 'persistent' ? {
58
+ dbName: 'smartstate',
59
+ storeName: statePartName as any,
60
+ } : null
61
+ );
53
62
  newState.setState(initialPayloadArg);
54
63
  this.statePartMap[statePartName as any] = newState;
55
64
  return newState;