@push.rocks/smartstate 2.0.13 → 2.0.15
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 +14 -9
- 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 +1 -1
- package/dist_ts/smartstate.classes.smartstate.js +9 -4
- package/dist_ts/smartstate.classes.statepart.d.ts +3 -2
- package/dist_ts/smartstate.classes.statepart.js +7 -7
- package/package.json +1 -1
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/smartstate.classes.smartstate.ts +10 -5
- package/ts/smartstate.classes.statepart.ts +7 -6
|
@@ -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.14',
|
|
7
7
|
description: 'a package that handles state in a good way'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLDRDQUE0QztDQUMxRCxDQUFBIn0=
|
|
@@ -17,7 +17,7 @@ export declare class Smartstate<StatePartNameType> {
|
|
|
17
17
|
* @param initialArg
|
|
18
18
|
* @param initMode
|
|
19
19
|
*/
|
|
20
|
-
getStatePart<PayloadType>(statePartNameArg: string & StatePartNameType, initialArg?: PayloadType, initMode?: TInitMode): StatePart<StatePartNameType, PayloadType
|
|
20
|
+
getStatePart<PayloadType>(statePartNameArg: string & StatePartNameType, initialArg?: PayloadType, initMode?: TInitMode): Promise<StatePart<StatePartNameType, PayloadType>>;
|
|
21
21
|
/**
|
|
22
22
|
* creates a statepart
|
|
23
23
|
* @param statePartName
|
|
@@ -16,7 +16,7 @@ export class Smartstate {
|
|
|
16
16
|
* @param initialArg
|
|
17
17
|
* @param initMode
|
|
18
18
|
*/
|
|
19
|
-
getStatePart(statePartNameArg, initialArg, initMode) {
|
|
19
|
+
async getStatePart(statePartNameArg, initialArg, initMode) {
|
|
20
20
|
if (this.statePartMap[statePartNameArg]) {
|
|
21
21
|
if (initialArg && (!initMode || initMode !== 'soft')) {
|
|
22
22
|
throw new Error(`${statePartNameArg} already exists, yet you try to set an initial state again`);
|
|
@@ -35,14 +35,19 @@ export class Smartstate {
|
|
|
35
35
|
* @param statePartName
|
|
36
36
|
* @param initialPayloadArg
|
|
37
37
|
*/
|
|
38
|
-
createStatePart(statePartName, initialPayloadArg, initMode) {
|
|
38
|
+
async createStatePart(statePartName, initialPayloadArg, initMode) {
|
|
39
39
|
const newState = new StatePart(statePartName, initMode === 'persistent' ? {
|
|
40
40
|
dbName: 'smartstate',
|
|
41
41
|
storeName: statePartName,
|
|
42
42
|
} : null);
|
|
43
|
-
newState.
|
|
43
|
+
await newState.init();
|
|
44
|
+
const currentState = newState.getState();
|
|
45
|
+
await newState.setState({
|
|
46
|
+
...initialPayloadArg,
|
|
47
|
+
...currentState,
|
|
48
|
+
});
|
|
44
49
|
this.statePartMap[statePartName] = newState;
|
|
45
50
|
return newState;
|
|
46
51
|
}
|
|
47
52
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdGF0ZS5jbGFzc2VzLnNtYXJ0c3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHN0YXRlLmNsYXNzZXMuc21hcnRzdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUk5RDs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBR3JCO1FBRk8saUJBQVksR0FBeUQsRUFBRSxDQUFDO0lBRWhFLENBQUM7SUFFaEI7Ozs7Ozs7O09BUUc7SUFDSSxLQUFLLENBQUMsWUFBWSxDQUN2QixnQkFBNEMsRUFDNUMsVUFBd0IsRUFDeEIsUUFBb0I7UUFFcEIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUF1QixDQUFDLEVBQUU7WUFDOUMsSUFBSSxVQUFVLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxRQUFRLEtBQUssTUFBTSxDQUFDLEVBQUU7Z0JBQ3BELE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxnQkFBZ0IsNERBQTRELENBQ2hGLENBQUM7YUFDSDtZQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBOEMsQ0FBQztTQUN6RjthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDZixNQUFNLElBQUksS0FBSyxDQUNiLEdBQUcsZ0JBQWdCLDZEQUE2RCxDQUNqRixDQUFDO2FBQ0g7WUFDRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQWMsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ2xGO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxLQUFLLENBQUMsZUFBZSxDQUMzQixhQUFnQyxFQUNoQyxpQkFBOEIsRUFDOUIsUUFBb0I7UUFFcEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxTQUFTLENBQzVCLGFBQWEsRUFDYixRQUFRLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQztZQUMxQixNQUFNLEVBQUUsWUFBWTtZQUNwQixTQUFTLEVBQUUsYUFBb0I7U0FDaEMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNULENBQUM7UUFDRixNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekMsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ3RCLEdBQUcsaUJBQWlCO1lBQ3BCLEdBQUcsWUFBWTtTQUNoQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQW9CLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDbkQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGIn0=
|
|
@@ -5,12 +5,13 @@ export declare class StatePart<TStatePartName, TStatePayload> {
|
|
|
5
5
|
state: plugins.smartrx.rxjs.Subject<TStatePayload>;
|
|
6
6
|
stateStore: TStatePayload;
|
|
7
7
|
private cumulativeDeferred;
|
|
8
|
+
private webStoreOptions;
|
|
8
9
|
private webStore;
|
|
9
|
-
constructor(nameArg: TStatePartName,
|
|
10
|
+
constructor(nameArg: TStatePartName, webStoreOptionsArg?: plugins.webstore.IWebStoreOptions);
|
|
10
11
|
/**
|
|
11
12
|
* initializes the webstore
|
|
12
13
|
*/
|
|
13
|
-
|
|
14
|
+
init(): Promise<void>;
|
|
14
15
|
/**
|
|
15
16
|
* gets the state from the state store
|
|
16
17
|
*/
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import * as plugins from './smartstate.plugins.js';
|
|
2
2
|
import { StateAction } from './smartstate.classes.stateaction.js';
|
|
3
3
|
export class StatePart {
|
|
4
|
-
constructor(nameArg,
|
|
4
|
+
constructor(nameArg, webStoreOptionsArg) {
|
|
5
5
|
this.state = new plugins.smartrx.rxjs.Subject();
|
|
6
6
|
this.cumulativeDeferred = plugins.smartpromise.cumulativeDefer();
|
|
7
7
|
this.webStore = null; // Add WebStore instance
|
|
8
8
|
this.name = nameArg;
|
|
9
9
|
// Initialize WebStore if webStoreOptions are provided
|
|
10
|
-
if (
|
|
11
|
-
this.
|
|
12
|
-
this.initWebStore();
|
|
10
|
+
if (webStoreOptionsArg) {
|
|
11
|
+
this.webStoreOptions = webStoreOptionsArg;
|
|
13
12
|
}
|
|
14
13
|
}
|
|
15
14
|
/**
|
|
16
15
|
* initializes the webstore
|
|
17
16
|
*/
|
|
18
|
-
async
|
|
19
|
-
if (this.
|
|
17
|
+
async init() {
|
|
18
|
+
if (this.webStoreOptions) {
|
|
19
|
+
this.webStore = new plugins.webstore.WebStore(this.webStoreOptions);
|
|
20
20
|
await this.webStore.init();
|
|
21
21
|
const storedState = await this.webStore.get(String(this.name));
|
|
22
22
|
if (storedState) {
|
|
@@ -124,4 +124,4 @@ export class StatePart {
|
|
|
124
124
|
this.setState(await resultPromise);
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdGF0ZS5jbGFzc2VzLnN0YXRlcGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c3RhdGUuY2xhc3Nlcy5zdGF0ZXBhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFtQixNQUFNLHFDQUFxQyxDQUFDO0FBRW5GLE1BQU0sT0FBTyxTQUFTO0lBU3BCLFlBQVksT0FBdUIsRUFBRSxrQkFBc0Q7UUFQcEYsVUFBSyxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFpQixDQUFDO1FBRXpELHVCQUFrQixHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLENBQUM7UUFHNUQsYUFBUSxHQUFvRCxJQUFJLENBQUMsQ0FBQyx3QkFBd0I7UUFHaEcsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7UUFFcEIsc0RBQXNEO1FBQ3RELElBQUksa0JBQWtCLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQztTQUMzQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxJQUFJO1FBQ2YsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBZ0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ25GLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzQixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMvRCxJQUFJLFdBQVcsRUFBRTtnQkFDZixJQUFJLENBQUMsVUFBVSxHQUFHLFdB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
|
package/package.json
CHANGED
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -20,11 +20,11 @@ export class Smartstate<StatePartNameType> {
|
|
|
20
20
|
* @param initialArg
|
|
21
21
|
* @param initMode
|
|
22
22
|
*/
|
|
23
|
-
public getStatePart<PayloadType>(
|
|
23
|
+
public async getStatePart<PayloadType>(
|
|
24
24
|
statePartNameArg: string & StatePartNameType,
|
|
25
25
|
initialArg?: PayloadType,
|
|
26
26
|
initMode?: TInitMode
|
|
27
|
-
): StatePart<StatePartNameType, PayloadType
|
|
27
|
+
): Promise<StatePart<StatePartNameType, PayloadType>> {
|
|
28
28
|
if (this.statePartMap[statePartNameArg as any]) {
|
|
29
29
|
if (initialArg && (!initMode || initMode !== 'soft')) {
|
|
30
30
|
throw new Error(
|
|
@@ -47,11 +47,11 @@ export class Smartstate<StatePartNameType> {
|
|
|
47
47
|
* @param statePartName
|
|
48
48
|
* @param initialPayloadArg
|
|
49
49
|
*/
|
|
50
|
-
private createStatePart<PayloadType>(
|
|
50
|
+
private async createStatePart<PayloadType>(
|
|
51
51
|
statePartName: StatePartNameType,
|
|
52
52
|
initialPayloadArg: PayloadType,
|
|
53
53
|
initMode?: TInitMode
|
|
54
|
-
): StatePart<StatePartNameType, PayloadType
|
|
54
|
+
): Promise<StatePart<StatePartNameType, PayloadType>> {
|
|
55
55
|
const newState = new StatePart<StatePartNameType, PayloadType>(
|
|
56
56
|
statePartName,
|
|
57
57
|
initMode === 'persistent' ? {
|
|
@@ -59,7 +59,12 @@ export class Smartstate<StatePartNameType> {
|
|
|
59
59
|
storeName: statePartName as any,
|
|
60
60
|
} : null
|
|
61
61
|
);
|
|
62
|
-
newState.
|
|
62
|
+
await newState.init();
|
|
63
|
+
const currentState = newState.getState();
|
|
64
|
+
await newState.setState({
|
|
65
|
+
...initialPayloadArg,
|
|
66
|
+
...currentState,
|
|
67
|
+
});
|
|
63
68
|
this.statePartMap[statePartName as any] = newState;
|
|
64
69
|
return newState;
|
|
65
70
|
}
|
|
@@ -7,23 +7,24 @@ export class StatePart<TStatePartName, TStatePayload> {
|
|
|
7
7
|
public stateStore: TStatePayload;
|
|
8
8
|
private cumulativeDeferred = plugins.smartpromise.cumulativeDefer();
|
|
9
9
|
|
|
10
|
+
private webStoreOptions: plugins.webstore.IWebStoreOptions;
|
|
10
11
|
private webStore: plugins.webstore.WebStore<TStatePayload> | null = null; // Add WebStore instance
|
|
11
12
|
|
|
12
|
-
constructor(nameArg: TStatePartName,
|
|
13
|
+
constructor(nameArg: TStatePartName, webStoreOptionsArg?: plugins.webstore.IWebStoreOptions) {
|
|
13
14
|
this.name = nameArg;
|
|
14
15
|
|
|
15
16
|
// Initialize WebStore if webStoreOptions are provided
|
|
16
|
-
if (
|
|
17
|
-
this.
|
|
18
|
-
this.initWebStore();
|
|
17
|
+
if (webStoreOptionsArg) {
|
|
18
|
+
this.webStoreOptions = webStoreOptionsArg;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* initializes the webstore
|
|
24
24
|
*/
|
|
25
|
-
|
|
26
|
-
if (this.
|
|
25
|
+
public async init() {
|
|
26
|
+
if (this.webStoreOptions) {
|
|
27
|
+
this.webStore = new plugins.webstore.WebStore<TStatePayload>(this.webStoreOptions);
|
|
27
28
|
await this.webStore.init();
|
|
28
29
|
const storedState = await this.webStore.get(String(this.name));
|
|
29
30
|
if (storedState) {
|