@steedos/service-metadata-objects 2.7.18-beta.24 → 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.
@@ -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(node) {
13
- let result = [];
14
- function traverse(node) {
15
- if (!node)
16
- return;
17
- if (node.type === 'variable') {
18
- result.push(node.name);
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
- for (const key in node) {
21
- if (typeof node[key] === 'object' && node[key] !== null) {
22
- traverse(node[key]);
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
- traverse(node);
27
- return result;
36
+ return variables;
28
37
  }
29
38
  const pickFormulaVars = (formula) => {
30
39
  if (isAmisFormula(formula)) {
@@ -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;IACzC,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,SAAS,QAAQ,CAAC,IAAI;QAClB,IAAI,CAAC,IAAI;YAAE,OAAO;QAGlB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;YAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1B;QAGD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACpB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;gBACrD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aACvB;SACJ;IACL,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,MAAM,CAAC;AAClB,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"}
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.24",
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",
24
- "@steedos/i18n": "2.7.18-beta.24",
25
- "@steedos/metadata-registrar": "2.7.18-beta.24",
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": "3887c76f413023097f6d7738d8085d3f481d650f"
40
+ "gitHead": "742c13436718f7aeb9a0f44b04cef9d0a8c60422"
41
41
  }
@@ -26,27 +26,37 @@ const isAmisFormula = (formula: string) => {
26
26
  // }
27
27
 
28
28
 
29
- function extractAmisFormulaVariableNames(node) {
30
- let result = [];
31
-
32
- function traverse(node) {
33
- if (!node) return;
34
-
35
- // 如果是变量节点,收集它的name
36
- if (node.type === 'variable') {
37
- result.push(node.name);
38
- }
39
-
40
- // 递归遍历所有子节点
41
- for (const key in node) {
42
- if (typeof node[key] === 'object' && node[key] !== null) {
43
- traverse(node[key]);
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
- traverse(node);
49
- return result;
57
+ }
58
+
59
+ return variables;
50
60
  }
51
61
 
52
62
  /**