@steedos/service-metadata-objects 2.7.18-beta.25 → 2.7.18-beta.26
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/lib/formula/core.js +21 -12
- package/lib/formula/core.js.map +1 -1
- package/package.json +5 -5
- package/src/formula/core.ts +30 -20
package/lib/formula/core.js
CHANGED
|
@@ -9,22 +9,31 @@ const amis_formula_1 = require("amis-formula");
|
|
|
9
9
|
const isAmisFormula = (formula) => {
|
|
10
10
|
return /\$\{.+\}/.test(formula);
|
|
11
11
|
};
|
|
12
|
-
function extractAmisFormulaVariableNames(
|
|
13
|
-
let
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
function extractAmisFormulaVariableNames(data) {
|
|
13
|
+
let variables = [];
|
|
14
|
+
if (data.type === 'variable' &&
|
|
15
|
+
(!data._isGetterHost)) {
|
|
16
|
+
variables.push(data.name);
|
|
17
|
+
}
|
|
18
|
+
else if (data.type === 'getter') {
|
|
19
|
+
data.host._isGetterHost = true;
|
|
20
|
+
variables.push(`${data.host.name}.${data.key.name}`);
|
|
21
|
+
}
|
|
22
|
+
if (Array.isArray(data)) {
|
|
23
|
+
for (const item of data) {
|
|
24
|
+
if (typeof item === 'object' && item !== null) {
|
|
25
|
+
variables = variables.concat(extractAmisFormulaVariableNames(item));
|
|
26
|
+
}
|
|
19
27
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
28
|
+
}
|
|
29
|
+
else if (typeof data === 'object' && data !== null) {
|
|
30
|
+
for (const key in data) {
|
|
31
|
+
if (typeof data[key] === 'object' && data[key] !== null) {
|
|
32
|
+
variables = variables.concat(extractAmisFormulaVariableNames(data[key]));
|
|
23
33
|
}
|
|
24
34
|
}
|
|
25
35
|
}
|
|
26
|
-
|
|
27
|
-
return result;
|
|
36
|
+
return variables;
|
|
28
37
|
}
|
|
29
38
|
const pickFormulaVars = (formula) => {
|
|
30
39
|
if (isAmisFormula(formula)) {
|
package/lib/formula/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/formula/core.ts"],"names":[],"mappings":";;;;AAAA,8CAA2C;AAC3C,mDAA+D;AAC/D,iCAAoE;AAEpE,+CAAoC;AAEpC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE;IAEtC,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC,CAAA;AAmBD,SAAS,+BAA+B,CAAC,IAAI;
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/formula/core.ts"],"names":[],"mappings":";;;;AAAA,8CAA2C;AAC3C,mDAA+D;AAC/D,iCAAoE;AAEpE,+CAAoC;AAEpC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE;IAEtC,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC,CAAA;AAmBD,SAAS,+BAA+B,CAAC,IAAI;IAC3C,IAAI,SAAS,GAAG,EAAE,CAAC;IAGnB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;QACxB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;QACzB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;SAEI,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;QAE/B,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC/B,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;KACtD;IAGD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACvB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;YACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;gBAC7C,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC;aACrE;SACF;KACF;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;QACpD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;gBACvD,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC1E;SACF;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAMM,MAAM,eAAe,GAAG,CAAC,OAAe,EAAiB,EAAE;IAC9D,IAAG,aAAa,CAAC,OAAO,CAAC,EAAC;QACtB,MAAM,MAAM,GAAG,+BAA+B,CAAC,IAAA,oBAAK,EAAC,OAAO,CAAC,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC;KACjB;IACD,OAAO,IAAA,iBAAO,EAAC,OAAO,CAAC,CAAC;AAC5B,CAAC,CAAA;AANY,QAAA,eAAe,mBAM3B;AAUM,MAAM,oCAAoC,GAAG,CAAO,iBAAyB,EAAE,gBAAwB,EAAE,UAAkB,EAAE,UAA0B,EAAoB,EAAE;IAChL,MAAM,OAAO,GAAyC,MAAM,IAAA,4CAA4B,EAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;IAC9H,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;QAC3B,OAAO,IAAA,iDAA0C,EAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;KACzF;SACI;QAED,OAAO,KAAK,CAAC;KAChB;AACL,CAAC,CAAA,CAAA;AATY,QAAA,oCAAoC,wCAShD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/service-metadata-objects",
|
|
3
|
-
"version": "2.7.18-beta.
|
|
3
|
+
"version": "2.7.18-beta.26",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/objects.service.js",
|
|
6
6
|
"scripts": {
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@salesforce/ts-types": "1.1.2",
|
|
23
|
-
"@steedos/formula": "2.7.18-beta.
|
|
24
|
-
"@steedos/i18n": "2.7.18-beta.
|
|
25
|
-
"@steedos/metadata-registrar": "2.7.18-beta.
|
|
23
|
+
"@steedos/formula": "2.7.18-beta.26",
|
|
24
|
+
"@steedos/i18n": "2.7.18-beta.26",
|
|
25
|
+
"@steedos/metadata-registrar": "2.7.18-beta.26",
|
|
26
26
|
"dotenv-flow": "^3.1.0",
|
|
27
27
|
"ioredis": "^4.22.0",
|
|
28
28
|
"lodash": "^4.17.21",
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
"publishConfig": {
|
|
38
38
|
"access": "public"
|
|
39
39
|
},
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "742c13436718f7aeb9a0f44b04cef9d0a8c60422"
|
|
41
41
|
}
|
package/src/formula/core.ts
CHANGED
|
@@ -26,27 +26,37 @@ const isAmisFormula = (formula: string) => {
|
|
|
26
26
|
// }
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
function extractAmisFormulaVariableNames(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
29
|
+
function extractAmisFormulaVariableNames(data) {
|
|
30
|
+
let variables = [];
|
|
31
|
+
|
|
32
|
+
// 检查当前节点是否是变量(但不是getter的host)
|
|
33
|
+
if (data.type === 'variable' &&
|
|
34
|
+
(!data._isGetterHost)) { // 添加标记避免重复收集
|
|
35
|
+
variables.push(data.name);
|
|
36
|
+
}
|
|
37
|
+
// 检查当前节点是否是getter
|
|
38
|
+
else if (data.type === 'getter') {
|
|
39
|
+
// 标记host节点,避免重复收集
|
|
40
|
+
data.host._isGetterHost = true;
|
|
41
|
+
variables.push(`${data.host.name}.${data.key.name}`);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// 递归检查所有子节点
|
|
45
|
+
if (Array.isArray(data)) {
|
|
46
|
+
for (const item of data) {
|
|
47
|
+
if (typeof item === 'object' && item !== null) {
|
|
48
|
+
variables = variables.concat(extractAmisFormulaVariableNames(item));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
} else if (typeof data === 'object' && data !== null) {
|
|
52
|
+
for (const key in data) {
|
|
53
|
+
if (typeof data[key] === 'object' && data[key] !== null) {
|
|
54
|
+
variables = variables.concat(extractAmisFormulaVariableNames(data[key]));
|
|
55
|
+
}
|
|
46
56
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return variables;
|
|
50
60
|
}
|
|
51
61
|
|
|
52
62
|
/**
|