@abaplint/transpiler-cli 2.4.4 → 2.4.6

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.
Files changed (2) hide show
  1. package/build/bundle.js +23 -9
  2. package/package.json +2 -2
package/build/bundle.js CHANGED
@@ -68491,6 +68491,7 @@ exports.SourceFieldSymbolTranspiler = SourceFieldSymbolTranspiler;
68491
68491
  Object.defineProperty(exports, "__esModule", ({ value: true }));
68492
68492
  exports.SQLCondTranspiler = void 0;
68493
68493
  const abaplint = __webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js");
68494
+ const traversal_1 = __webpack_require__(/*! ../traversal */ "./node_modules/@abaplint/transpiler/build/src/traversal.js");
68494
68495
  const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
68495
68496
  const simple_source3_1 = __webpack_require__(/*! ./simple_source3 */ "./node_modules/@abaplint/transpiler/build/src/expressions/simple_source3.js");
68496
68497
  const field_chain_1 = __webpack_require__(/*! ./field_chain */ "./node_modules/@abaplint/transpiler/build/src/expressions/field_chain.js");
@@ -68518,7 +68519,7 @@ class SQLCondTranspiler {
68518
68519
  ret += this.sqlIn(c, traversal);
68519
68520
  }
68520
68521
  else {
68521
- ret += this.basicCondition(c, traversal);
68522
+ ret += this.basicCondition(c, traversal, traversal.getFilename());
68522
68523
  }
68523
68524
  }
68524
68525
  else if (c instanceof abaplint.Nodes.ExpressionNode) {
@@ -68541,18 +68542,17 @@ class SQLCondTranspiler {
68541
68542
  const ret = `" + abap.expandIN("${fieldName.concatTokens()}", ${source.concatTokens()}) + "`;
68542
68543
  return ret;
68543
68544
  }
68544
- basicCondition(c, traversal) {
68545
+ basicCondition(c, traversal, filename) {
68545
68546
  let ret = "";
68546
68547
  if (c.getChildren().length !== 3) {
68547
- return this.basicConditionNew(c, traversal);
68548
- // throw new Error("SQL Condition, transpiler todo1, " + c.concatTokens() + ", " + c.getChildren().length);
68548
+ return this.basicConditionNew(c, traversal, filename);
68549
68549
  }
68550
68550
  const fieldName = c.findDirectExpression(abaplint.Expressions.SQLFieldName);
68551
68551
  const operator = c.findDirectExpression(abaplint.Expressions.SQLCompareOperator);
68552
68552
  const source = c.findDirectExpression(abaplint.Expressions.SQLSource);
68553
68553
  if (fieldName && source && operator === undefined && c.findDirectTokenByText("LIKE")) {
68554
68554
  ret += fieldName.concatTokens() + " LIKE ";
68555
- ret += this.sqlSource(source, traversal);
68555
+ ret += this.sqlSource(source, traversal, filename);
68556
68556
  return ret;
68557
68557
  }
68558
68558
  if (fieldName === undefined || operator === undefined || source === undefined) {
@@ -68566,21 +68566,35 @@ class SQLCondTranspiler {
68566
68566
  op = "<>";
68567
68567
  }
68568
68568
  ret += fieldName.concatTokens() + " " + op + " ";
68569
- ret += this.sqlSource(source, traversal);
68569
+ ret += this.sqlSource(source, traversal, filename);
68570
68570
  return ret;
68571
68571
  }
68572
- sqlSource(source, traversal) {
68572
+ sqlSource(source, traversal, filename) {
68573
68573
  let ret = "";
68574
68574
  const simple = source.findDirectExpression(abaplint.Expressions.SimpleSource3);
68575
+ const alias = source.findDirectExpression(abaplint.Expressions.SQLAliasField);
68575
68576
  if (simple && simple.findDirectExpression(abaplint.Expressions.Constant) === undefined) {
68576
68577
  ret += "'\" + " + new simple_source3_1.SimpleSource3Transpiler(true).transpile(simple, traversal).getCode() + " + \"'";
68577
68578
  }
68579
+ else if (alias) {
68580
+ // SQLAliasField might be a SQL reference or value from ABAP interface
68581
+ const pre = alias.concatTokens().split("~")[0];
68582
+ const found = traversal.findInterfaceDefinition(pre, traversal.findCurrentScopeByToken(alias.getFirstToken()));
68583
+ if (found) {
68584
+ let name = traversal.prefixAndName(alias.getFirstToken(), filename).replace("~", "$");
68585
+ name = traversal_1.Traversal.escapeNamespace(name);
68586
+ ret += "'\" + " + name + ".get() + \"'";
68587
+ }
68588
+ else {
68589
+ ret += source.concatTokens();
68590
+ }
68591
+ }
68578
68592
  else {
68579
68593
  ret += source.concatTokens();
68580
68594
  }
68581
68595
  return ret;
68582
68596
  }
68583
- basicConditionNew(node, traversal) {
68597
+ basicConditionNew(node, traversal, filename) {
68584
68598
  let ret = "";
68585
68599
  for (const child of node.getChildren()) {
68586
68600
  if (ret !== "") {
@@ -68591,7 +68605,7 @@ class SQLCondTranspiler {
68591
68605
  }
68592
68606
  else if (child.get() instanceof abaplint.Expressions.SQLSource
68593
68607
  && child instanceof abaplint.Nodes.ExpressionNode) {
68594
- ret += this.sqlSource(child, traversal);
68608
+ ret += this.sqlSource(child, traversal, filename);
68595
68609
  }
68596
68610
  else {
68597
68611
  ret += child.concatTokens();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler-cli",
3
- "version": "2.4.4",
3
+ "version": "2.4.6",
4
4
  "description": "Transpiler - Command Line Interface",
5
5
  "bin": {
6
6
  "abap_transpile": "./abap_transpile"
@@ -25,7 +25,7 @@
25
25
  "author": "abaplint",
26
26
  "license": "MIT",
27
27
  "devDependencies": {
28
- "@abaplint/transpiler": "^2.4.4",
28
+ "@abaplint/transpiler": "^2.4.6",
29
29
  "@types/glob": "^7.2.0",
30
30
  "glob": "=7.2.0",
31
31
  "@types/progress": "^2.0.5",