@push.rocks/smartstate 2.0.13 → 2.0.14

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.12',
6
+ version: '2.0.13',
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,18 @@ 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.setState(initialPayloadArg);
43
+ const currentState = newState.getState();
44
+ await newState.setState({
45
+ ...initialPayloadArg,
46
+ ...currentState,
47
+ });
44
48
  this.statePartMap[statePartName] = newState;
45
49
  return newState;
46
50
  }
47
51
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdGF0ZS5jbGFzc2VzLnNtYXJ0c3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHN0YXRlLmNsYXNzZXMuc21hcnRzdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUk5RDs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBR3JCO1FBRk8saUJBQVksR0FBeUQsRUFBRSxDQUFDO0lBRWhFLENBQUM7SUFFaEI7Ozs7Ozs7O09BUUc7SUFDSSxZQUFZLENBQ2pCLGdCQUE0QyxFQUM1QyxVQUF3QixFQUN4QixRQUFvQjtRQUVwQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQXVCLENBQUMsRUFBRTtZQUM5QyxJQUFJLFVBQVUsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLFFBQVEsS0FBSyxNQUFNLENBQUMsRUFBRTtnQkFDcEQsTUFBTSxJQUFJLEtBQUssQ0FDYixHQUFHLGdCQUFnQiw0REFBNEQsQ0FDaEYsQ0FBQzthQUNIO1lBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUE4QyxDQUFDO1NBQ3pGO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNmLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxnQkFBZ0IsNkRBQTZELENBQ2pGLENBQUM7YUFDSDtZQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBYyxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDbEY7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGVBQWUsQ0FDckIsYUFBZ0MsRUFDaEMsaUJBQThCLEVBQzlCLFFBQW9CO1FBRXBCLE1BQU0sUUFBUSxHQUFHLElBQUksU0FBUyxDQUM1QixhQUFhLEVBQ2IsUUFBUSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxFQUFFLFlBQVk7WUFDcEIsU0FBUyxFQUFFLGFBQW9CO1NBQ2hDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDVCxDQUFDO1FBQ0YsUUFBUSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBb0IsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUNuRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0YifQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdGF0ZS5jbGFzc2VzLnNtYXJ0c3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHN0YXRlLmNsYXNzZXMuc21hcnRzdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUk5RDs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBR3JCO1FBRk8saUJBQVksR0FBeUQsRUFBRSxDQUFDO0lBRWhFLENBQUM7SUFFaEI7Ozs7Ozs7O09BUUc7SUFDSSxLQUFLLENBQUMsWUFBWSxDQUN2QixnQkFBNEMsRUFDNUMsVUFBd0IsRUFDeEIsUUFBb0I7UUFFcEIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUF1QixDQUFDLEVBQUU7WUFDOUMsSUFBSSxVQUFVLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxRQUFRLEtBQUssTUFBTSxDQUFDLEVBQUU7Z0JBQ3BELE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxnQkFBZ0IsNERBQTRELENBQ2hGLENBQUM7YUFDSDtZQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBOEMsQ0FBQztTQUN6RjthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDZixNQUFNLElBQUksS0FBSyxDQUNiLEdBQUcsZ0JBQWdCLDZEQUE2RCxDQUNqRixDQUFDO2FBQ0g7WUFDRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQWMsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ2xGO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxLQUFLLENBQUMsZUFBZSxDQUMzQixhQUFnQyxFQUNoQyxpQkFBOEIsRUFDOUIsUUFBb0I7UUFFcEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxTQUFTLENBQzVCLGFBQWEsRUFDYixRQUFRLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQztZQUMxQixNQUFNLEVBQUUsWUFBWTtZQUNwQixTQUFTLEVBQUUsYUFBb0I7U0FDaEMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNULENBQUM7UUFDRixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekMsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ3RCLEdBQUcsaUJBQWlCO1lBQ3BCLEdBQUcsWUFBWTtTQUNoQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQW9CLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDbkQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@push.rocks/smartstate",
3
- "version": "2.0.13",
3
+ "version": "2.0.14",
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.13',
6
+ version: '2.0.14',
7
7
  description: 'a package that handles state in a good way'
8
8
  }
@@ -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,11 @@ export class Smartstate<StatePartNameType> {
59
59
  storeName: statePartName as any,
60
60
  } : null
61
61
  );
62
- newState.setState(initialPayloadArg);
62
+ const currentState = newState.getState();
63
+ await newState.setState({
64
+ ...initialPayloadArg,
65
+ ...currentState,
66
+ });
63
67
  this.statePartMap[statePartName as any] = newState;
64
68
  return newState;
65
69
  }