@abaplint/transpiler 2.5.26 → 2.5.27

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,13 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ComponentChainSimpleTranspiler = void 0;
4
4
  const core_1 = require("@abaplint/core");
5
5
  const chunk_1 = require("../chunk");
6
+ const traversal_1 = require("../traversal");
6
7
  class ComponentChainSimpleTranspiler {
7
8
  transpile(node, traversal) {
8
9
  const ret = new chunk_1.Chunk();
9
10
  for (const c of node.getChildren()) {
10
11
  const type = c.get();
11
12
  if (type instanceof core_1.Expressions.ComponentName) {
12
- ret.append(c.getFirstToken().getStr().toLowerCase(), c, traversal);
13
+ let field = c.getFirstToken().getStr().toLowerCase();
14
+ const interfaceName = traversal.isInterfaceAttribute(c.getFirstToken());
15
+ if (interfaceName && field.startsWith(interfaceName) === false) {
16
+ field = interfaceName + "$" + field;
17
+ }
18
+ field = traversal_1.Traversal.escapeNamespace(field).replace("~", "$");
19
+ ret.append(field, c, traversal);
13
20
  }
14
21
  else if (type instanceof core_1.Expressions.ArrowOrDash) {
15
22
  ret.append(".get().", c, traversal);
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ReadTableTranspiler = void 0;
4
4
  const abaplint = require("@abaplint/core");
5
- const traversal_1 = require("../traversal");
6
5
  const expressions_1 = require("../expressions");
7
6
  const unique_identifier_1 = require("../unique_identifier");
8
7
  const chunk_1 = require("../chunk");
@@ -55,19 +54,15 @@ class ReadTableTranspiler {
55
54
  const left = compare.getChildren()[i * 3];
56
55
  const source = compare.getChildren()[(i * 3) + 2];
57
56
  const s = traversal.traverse(source).getCode();
58
- let field = left.concatTokens().toLowerCase();
59
- while (field.includes("->")) {
60
- field = field.replace("->", ".get().");
61
- }
62
- while (field.includes("-")) {
63
- field = field.replace("-", ".get().");
64
- }
65
- field = traversal_1.Traversal.escapeNamespace(field).replace("~", "$");
57
+ let field = "";
66
58
  if (left.get() instanceof abaplint.Expressions.Dynamic
67
59
  && left instanceof abaplint.Nodes.ExpressionNode) {
68
60
  const concat = left.concatTokens().toLowerCase();
69
61
  field = concat.substring(2, concat.length - 2);
70
62
  }
63
+ else {
64
+ field = traversal.traverse(left).getCode();
65
+ }
71
66
  if (s.includes("await")) {
72
67
  const id = unique_identifier_1.UniqueIdentifier.get();
73
68
  prefix += "const " + id + " = " + s + ";\n";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler",
3
- "version": "2.5.26",
3
+ "version": "2.5.27",
4
4
  "description": "Transpiler",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/src/index.d.ts",
@@ -28,7 +28,7 @@
28
28
  "author": "abaplint",
29
29
  "license": "MIT",
30
30
  "dependencies": {
31
- "@abaplint/core": "^2.95.35",
31
+ "@abaplint/core": "^2.95.36",
32
32
  "source-map": "^0.7.4"
33
33
  },
34
34
  "devDependencies": {