@flashist/appframework 0.0.70 → 0.0.72
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/package.json +2 -1
- package/state/data/AppStateStorage.d.ts +23 -1
- package/state/data/AppStateStorage.js +33 -3
- package/state/data/AppStateStorage.js.map +1 -1
- package/state/tools/AppStateDeepKeyTools.d.ts +1 -1
- package/state/tools/AppStateDeepKeyTools.js +23 -1
- package/state/tools/AppStateDeepKeyTools.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flashist/appframework",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.72",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"build": "gulp",
|
|
6
6
|
"publish:patch": "npm version patch && npm run build && cd ./dist && npm publish",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
"typings": "index.d.ts",
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@flashist/fconsole": "0.x",
|
|
20
|
+
"@flashist/fcore": "0.0.130",
|
|
20
21
|
"@flashist/flibs": "0.x"
|
|
21
22
|
},
|
|
22
23
|
"devDependencies": {
|
|
@@ -4,6 +4,28 @@ import { IDeepKeyHelperVO } from "../tools/INestedPathHelperVO";
|
|
|
4
4
|
import { DeepReadonly } from "./DeepReadableTypings";
|
|
5
5
|
import { IPreChangeHook } from "./IPreChangeHook";
|
|
6
6
|
export declare class AppStateStorage extends BaseObjectWithGlobalDispatcher {
|
|
7
|
+
/**
|
|
8
|
+
* The purpose of the method is to "prepare" a "wrapper" of a part of a state,
|
|
9
|
+
* to avoid constant writings of the full path. So instead of:
|
|
10
|
+
* change<MyType>()("a.b.c.2.test1", value);
|
|
11
|
+
* change<MyType>()("a.b.c.2.test2", value);
|
|
12
|
+
* change<MyType>()("a.b.c.2.test3", value);
|
|
13
|
+
* change<MyType>()("a.b.c.2.test4", value);
|
|
14
|
+
*
|
|
15
|
+
* You can do
|
|
16
|
+
* const changeWrapper = changePropertyWrapper<MyType>("a.b.c.2");
|
|
17
|
+
* changeWrapper("test1", value)
|
|
18
|
+
* changeWrapper("test2", value)
|
|
19
|
+
* changeWrapper("test3", value)
|
|
20
|
+
* changeWrapper("test4", value)
|
|
21
|
+
*
|
|
22
|
+
* How to use:
|
|
23
|
+
* const testWrapper = this.changePropertyWrapper<TestState>()("b.complexObject");
|
|
24
|
+
testWrapper("test1", "1")
|
|
25
|
+
|
|
26
|
+
* @returns
|
|
27
|
+
*/
|
|
28
|
+
changePropertyWrapper<StateType extends object>(): <WrapperStateType extends Partial<Flatten<StateType, never>[DeepKeyType]>, DeepKeyType extends keyof Flatten<StateType, never>>(key: DeepKeyType) => <WrapperDeepKeyType extends keyof Flatten<WrapperStateType, never>>(wrapperKey: WrapperDeepKeyType, value: Partial<Flatten<WrapperStateType, never>[WrapperDeepKeyType]>) => void;
|
|
7
29
|
protected isInitialized: boolean;
|
|
8
30
|
protected state: object;
|
|
9
31
|
protected pathsHelperDataCache: {
|
|
@@ -14,7 +36,7 @@ export declare class AppStateStorage extends BaseObjectWithGlobalDispatcher {
|
|
|
14
36
|
initializeComplete(): void;
|
|
15
37
|
getState<StateType extends object>(): DeepReadonly<StateType>;
|
|
16
38
|
protected dispatchChangeEvents(helperData: IDeepKeyHelperVO): void;
|
|
17
|
-
protected getPathsHelperData(deepKey: string): IDeepKeyHelperVO;
|
|
39
|
+
protected getPathsHelperData(deepKey: string, value: any): IDeepKeyHelperVO;
|
|
18
40
|
change<StateType extends object>(): <DeepKeyType extends keyof Flatten<StateType, never>>(key: DeepKeyType, value: Partial<Flatten<StateType, never>[DeepKeyType]>) => void;
|
|
19
41
|
protected innerChange<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, value: Partial<ValueType>): void;
|
|
20
42
|
}
|
|
@@ -83,6 +83,35 @@ var AppStateStorage = /** @class */ (function (_super) {
|
|
|
83
83
|
// this.dispatchChangeEvents(pathsHelperData);
|
|
84
84
|
// }
|
|
85
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* The purpose of the method is to "prepare" a "wrapper" of a part of a state,
|
|
88
|
+
* to avoid constant writings of the full path. So instead of:
|
|
89
|
+
* change<MyType>()("a.b.c.2.test1", value);
|
|
90
|
+
* change<MyType>()("a.b.c.2.test2", value);
|
|
91
|
+
* change<MyType>()("a.b.c.2.test3", value);
|
|
92
|
+
* change<MyType>()("a.b.c.2.test4", value);
|
|
93
|
+
*
|
|
94
|
+
* You can do
|
|
95
|
+
* const changeWrapper = changePropertyWrapper<MyType>("a.b.c.2");
|
|
96
|
+
* changeWrapper("test1", value)
|
|
97
|
+
* changeWrapper("test2", value)
|
|
98
|
+
* changeWrapper("test3", value)
|
|
99
|
+
* changeWrapper("test4", value)
|
|
100
|
+
*
|
|
101
|
+
* How to use:
|
|
102
|
+
* const testWrapper = this.changePropertyWrapper<TestState>()("b.complexObject");
|
|
103
|
+
testWrapper("test1", "1")
|
|
104
|
+
|
|
105
|
+
* @returns
|
|
106
|
+
*/
|
|
107
|
+
AppStateStorage.prototype.changePropertyWrapper = function () {
|
|
108
|
+
var _this = this;
|
|
109
|
+
return function (key) {
|
|
110
|
+
return function (wrapperKey, value) {
|
|
111
|
+
_this.innerChange({}, ("".concat(key, ".").concat(wrapperKey)), value);
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
};
|
|
86
115
|
AppStateStorage.prototype.initializeWith = function (initState) {
|
|
87
116
|
if (this.isInitialized) {
|
|
88
117
|
return;
|
|
@@ -102,10 +131,10 @@ var AppStateStorage = /** @class */ (function (_super) {
|
|
|
102
131
|
this.dispatchEvent(eventName);
|
|
103
132
|
}
|
|
104
133
|
};
|
|
105
|
-
AppStateStorage.prototype.getPathsHelperData = function (deepKey) {
|
|
134
|
+
AppStateStorage.prototype.getPathsHelperData = function (deepKey, value) {
|
|
106
135
|
var result = this.pathsHelperDataCache[deepKey];
|
|
107
136
|
if (!result) {
|
|
108
|
-
result = AppStateDeepKeyTools.prepareDeepKeyHelperData(deepKey);
|
|
137
|
+
result = AppStateDeepKeyTools.prepareDeepKeyHelperData(deepKey, value);
|
|
109
138
|
this.pathsHelperDataCache[deepKey] = result;
|
|
110
139
|
}
|
|
111
140
|
return result;
|
|
@@ -123,7 +152,8 @@ var AppStateStorage = /** @class */ (function (_super) {
|
|
|
123
152
|
item(stateForTypings, deepKey, value);
|
|
124
153
|
});
|
|
125
154
|
}
|
|
126
|
-
var pathsHelperData = this.getPathsHelperData(deepKey);
|
|
155
|
+
var pathsHelperData = this.getPathsHelperData(deepKey, value);
|
|
156
|
+
console.log("AppStateStorage | innerChange __ pathsHelperData: ", pathsHelperData);
|
|
127
157
|
var tempObject = this.state;
|
|
128
158
|
var nestedPathsCount = pathsHelperData.splitDeepKeyParts.length;
|
|
129
159
|
for (var nestedPathIndex = 0; nestedPathIndex < nestedPathsCount; nestedPathIndex++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppStateStorage.js","sourceRoot":"","sources":["../../../src/state/data/AppStateStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAKrE;IAAqC,mCAA8B;IAAnE;QAAA,
|
|
1
|
+
{"version":3,"file":"AppStateStorage.js","sourceRoot":"","sources":["../../../src/state/data/AppStateStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { ObjectTools } from "@flashist/fcore";
|
|
1
2
|
var AppStateDeepKeyTools = /** @class */ (function () {
|
|
2
3
|
function AppStateDeepKeyTools() {
|
|
3
4
|
}
|
|
4
|
-
AppStateDeepKeyTools.prepareDeepKeyHelperData = function (deepKey) {
|
|
5
|
+
AppStateDeepKeyTools.prepareDeepKeyHelperData = function (deepKey, value) {
|
|
5
6
|
var result = {
|
|
6
7
|
splitDeepKeyParts: [],
|
|
7
8
|
dispatchingChangePaths: []
|
|
@@ -17,6 +18,27 @@ var AppStateDeepKeyTools = /** @class */ (function () {
|
|
|
17
18
|
tempTotalPath += singleSplitPath;
|
|
18
19
|
result.dispatchingChangePaths.push(tempTotalPath);
|
|
19
20
|
}
|
|
21
|
+
if (!ObjectTools.isSimpleType(value)) {
|
|
22
|
+
var getComplexValueKeyPaths_1 = function (value, valueDeepKey) {
|
|
23
|
+
var result = [valueDeepKey];
|
|
24
|
+
if (!ObjectTools.isSimpleType(value)) {
|
|
25
|
+
var keys = Object.keys(value);
|
|
26
|
+
for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
|
|
27
|
+
var singleKey = keys_1[_i];
|
|
28
|
+
var singlePropValue = value[singleKey];
|
|
29
|
+
var singleKeyDeepKeyPaths = getComplexValueKeyPaths_1(singlePropValue, "".concat(valueDeepKey, ".").concat(singleKey));
|
|
30
|
+
result.push.apply(result, singleKeyDeepKeyPaths);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
var valueDeepKeyPaths = getComplexValueKeyPaths_1(value, deepKey);
|
|
36
|
+
for (var _a = 0, valueDeepKeyPaths_1 = valueDeepKeyPaths; _a < valueDeepKeyPaths_1.length; _a++) {
|
|
37
|
+
var singleValueDeepKeyPath = valueDeepKeyPaths_1[_a];
|
|
38
|
+
tempTotalPath += "." + singleValueDeepKeyPath;
|
|
39
|
+
result.dispatchingChangePaths.push(tempTotalPath);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
20
42
|
return result;
|
|
21
43
|
};
|
|
22
44
|
return AppStateDeepKeyTools;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppStateDeepKeyTools.js","sourceRoot":"","sources":["../../../src/state/tools/AppStateDeepKeyTools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AppStateDeepKeyTools.js","sourceRoot":"","sources":["../../../src/state/tools/AppStateDeepKeyTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C;IAAA;IA4CA,CAAC;IA3CU,6CAAwB,GAA/B,UAAgC,OAAe,EAAE,KAAU;QACvD,IAAM,MAAM,GAAqB;YAC7B,iBAAiB,EAAE,EAAE;YACrB,sBAAsB,EAAE,EAAE;SAC7B,CAAC;QAEF,IAAI,aAAa,GAAW,EAAE,CAAC;QAC/B,IAAM,UAAU,GAAa,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,KAA4B,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU,EAAE;YAAnC,IAAI,eAAe,mBAAA;YACpB,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAE/C,IAAI,aAAa,EAAE;gBACf,aAAa,IAAI,GAAG,CAAC;aACxB;YACD,aAAa,IAAI,eAAe,CAAC;YACjC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACrD;QAED,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YAClC,IAAM,yBAAuB,GAAG,UAAC,KAAU,EAAE,YAAoB;gBAC7D,IAAI,MAAM,GAAa,CAAC,YAAY,CAAC,CAAC;gBAEtC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;oBAClC,IAAM,IAAI,GAAa,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC1C,KAAsB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;wBAAvB,IAAI,SAAS,aAAA;wBACd,IAAM,eAAe,GAAQ,KAAK,CAAC,SAAS,CAAC,CAAA;wBAC7C,IAAM,qBAAqB,GAAa,yBAAuB,CAAC,eAAe,EAAE,UAAG,YAAY,cAAI,SAAS,CAAE,CAAC,CAAC;wBACjH,MAAM,CAAC,IAAI,OAAX,MAAM,EAAS,qBAAqB,EAAE;qBACzC;iBACJ;gBAED,OAAO,MAAM,CAAC;YAClB,CAAC,CAAA;YAED,IAAM,iBAAiB,GAAa,yBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC5E,KAAmC,UAAiB,EAAjB,uCAAiB,EAAjB,+BAAiB,EAAjB,IAAiB,EAAE;gBAAjD,IAAI,sBAAsB,0BAAA;gBAC3B,aAAa,IAAI,GAAG,GAAG,sBAAsB,CAAC;gBAC9C,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACrD;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IACL,2BAAC;AAAD,CAAC,AA5CD,IA4CC"}
|