@push.rocks/smartstate 2.0.11 → 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.
- package/dist_bundle/bundle.js +9 -3
- package/dist_bundle/bundle.js.map +2 -2
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/smartstate.classes.smartstate.d.ts +2 -1
- package/dist_ts/smartstate.classes.smartstate.js +7 -4
- package/package.json +1 -1
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/smartstate.classes.smartstate.ts +13 -4
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@push.rocks/smartstate',
|
|
6
|
-
version: '2.0.
|
|
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?:
|
|
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,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdGF0ZS5jbGFzc2VzLnNtYXJ0c3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHN0YXRlLmNsYXNzZXMuc21hcnRzdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUk5RDs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBR3JCO1FBRk8saUJBQVksR0FBeUQsRUFBRSxDQUFDO0lBRWhFLENBQUM7SUFFaEI7Ozs7Ozs7O09BUUc7SUFDSSxZQUFZLENBQ2pCLGdCQUE0QyxFQUM1QyxVQUF3QixFQUN4QixRQUFvQjtRQUVwQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQXVCLENBQUMsRUFBRTtZQUM5QyxJQUFJLFVBQVUsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLFFBQVEsS0FBSyxNQUFNLENBQUMsRUFBRTtnQkFDcEQsTUFBTSxJQUFJLEtBQUssQ0FDYixHQUFHLGdCQUFnQiw0REFBNEQsQ0FDaEYsQ0FBQzthQUNIO1lBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUE4QyxDQUFDO1NBQ3pGO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNmLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxnQkFBZ0IsNkRBQTZELENBQ2pGLENBQUM7YUFDSDtZQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBYyxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDbEY7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGVBQWUsQ0FDckIsYUFBZ0MsRUFDaEMsaUJBQThCLEVBQzlCLFFBQW9CO1FBRXBCLE1BQU0sUUFBUSxHQUFHLElBQUksU0FBUyxDQUM1QixhQUFhLEVBQ2IsUUFBUSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxFQUFFLFlBQVk7WUFDcEIsU0FBUyxFQUFFLGFBQW9CO1NBQ2hDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDVCxDQUFDO1FBQ0YsUUFBUSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBb0IsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUNuRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0YifQ==
|
package/package.json
CHANGED
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -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?:
|
|
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>(
|
|
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;
|