@abaplint/transpiler-cli 2.1.11 → 2.1.12

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 +2 -2
  2. package/package.json +2 -2
package/build/bundle.js CHANGED
@@ -14382,7 +14382,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
14382
14382
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
14383
14383
 
14384
14384
  "use strict";
14385
- eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.PerformTranspiler = void 0;\r\nconst abaplint = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass PerformTranspiler {\r\n transpile(node, _traversal) {\r\n const formName = node.findDirectExpression(abaplint.Expressions.FormName);\r\n if (formName === undefined) {\r\n throw new Error(\"PerformTranspiler, FormName not found: \" + node.concatTokens());\r\n }\r\n // todo, parameters\r\n if (node.concatTokens().includes(\" IN PROGRAM \")) {\r\n return new chunk_1.Chunk(`throw new Error(\"PerformTranspiler IN PROGRAM, transpiler todo\");`);\r\n }\r\n return new chunk_1.Chunk(\"await \" + formName.concatTokens() + \"();\");\r\n }\r\n}\r\nexports.PerformTranspiler = PerformTranspiler;\r\n//# sourceMappingURL=perform.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/statements/perform.js?");
14385
+ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.PerformTranspiler = void 0;\r\nconst abaplint = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass PerformTranspiler {\r\n transpile(node, _traversal) {\r\n const formName = node.findDirectExpression(abaplint.Expressions.FormName);\r\n if (formName === undefined) {\r\n return new chunk_1.Chunk(`throw new Error(\"PerformTranspiler FormName not found\");`);\r\n }\r\n // todo, parameters\r\n if (node.concatTokens().includes(\" IN PROGRAM \")) {\r\n return new chunk_1.Chunk(`throw new Error(\"PerformTranspiler IN PROGRAM, transpiler todo\");`);\r\n }\r\n return new chunk_1.Chunk(\"await \" + formName.concatTokens() + \"();\");\r\n }\r\n}\r\nexports.PerformTranspiler = PerformTranspiler;\r\n//# sourceMappingURL=perform.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/statements/perform.js?");
14386
14386
 
14387
14387
  /***/ }),
14388
14388
 
@@ -14536,7 +14536,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
14536
14536
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
14537
14537
 
14538
14538
  "use strict";
14539
- eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.SelectTranspiler = void 0;\r\nconst abaplint = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nconst expressions_1 = __webpack_require__(/*! ../expressions */ \"./node_modules/@abaplint/transpiler/build/src/expressions/index.js\");\r\nclass SelectTranspiler {\r\n transpile(node, traversal, targetOverride) {\r\n var _a, _b, _c;\r\n const target = targetOverride || traversal.traverse(node.findFirstExpression(abaplint.Expressions.Target)).getCode();\r\n let select = \"SELECT \";\r\n select += (((_a = node.findFirstExpression(abaplint.Expressions.SQLFieldList)) === null || _a === void 0 ? void 0 : _a.concatTokens())\r\n || ((_b = node.findFirstExpression(abaplint.Expressions.SQLFieldListLoop)) === null || _b === void 0 ? void 0 : _b.concatTokens())) + \" \";\r\n select += ((_c = node.findFirstExpression(abaplint.Expressions.SQLFrom)) === null || _c === void 0 ? void 0 : _c.concatTokens()) + \" \";\r\n let where;\r\n for (const sqlCond of node.findAllExpressions(abaplint.Expressions.SQLCond)) {\r\n if (this.isWhereExpression(node, sqlCond)) {\r\n where = sqlCond;\r\n }\r\n }\r\n if (where) {\r\n select += \"WHERE \" + this.concatCond(where, traversal) + \" \";\r\n }\r\n const upTo = node.findFirstExpression(abaplint.Expressions.SQLUpTo);\r\n if (upTo) {\r\n select += upTo.concatTokens() + \" \";\r\n }\r\n const orderBy = node.findFirstExpression(abaplint.Expressions.SQLOrderBy);\r\n if (orderBy) {\r\n select += orderBy.concatTokens() + \" \";\r\n }\r\n for (const d of node.findAllExpressionsRecursive(abaplint.Expressions.Dynamic)) {\r\n const chain = d.findFirstExpression(abaplint.Expressions.FieldChain);\r\n if (chain) {\r\n const code = new expressions_1.FieldChainTranspiler(true).transpile(chain, traversal).getCode();\r\n const search = d.concatTokens();\r\n select = select.replace(search, `\" + ${code} + \"`);\r\n }\r\n }\r\n if (node.concatTokens().toUpperCase().startsWith(\"SELECT SINGLE \")) {\r\n select += \"UP TO 1 ROWS\";\r\n }\r\n const keys = this.findKeys(node, traversal);\r\n let primaryKey = \"\";\r\n if (keys.length > 0) {\r\n primaryKey = `, primaryKey: ${JSON.stringify(keys)}`;\r\n }\r\n return new chunk_1.Chunk().append(`await abap.statements.select(${target}, {select: \"${select.trim()}\"${primaryKey}});`, node, traversal);\r\n }\r\n findKeys(node, traversal) {\r\n let keys = [];\r\n const from = node.findAllExpressions(abaplint.Expressions.SQLFromSource).map(e => e.concatTokens());\r\n if (from.length === 1) {\r\n const tabl = traversal.findTable(from[0]);\r\n if (tabl) {\r\n keys = tabl.listKeys().map(k => k.toLowerCase());\r\n }\r\n }\r\n return keys;\r\n }\r\n concatCond(cond, traversal) {\r\n let ret = \"\";\r\n for (const c of cond.getChildren()) {\r\n if (c.get() instanceof abaplint.Expressions.SimpleSource3\r\n && c instanceof abaplint.Nodes.ExpressionNode\r\n && c.findDirectExpression(abaplint.Expressions.Constant) === undefined) {\r\n ret += \" '\\\" + \" + new expressions_1.SimpleSource3Transpiler(true).transpile(c, traversal).getCode() + \" + \\\"'\";\r\n }\r\n else if (c instanceof abaplint.Nodes.ExpressionNode) {\r\n ret += \" \" + this.concatCond(c, traversal);\r\n }\r\n else {\r\n ret += \" \" + c.concatTokens();\r\n }\r\n }\r\n return ret.trim();\r\n }\r\n isWhereExpression(node, expression) {\r\n // check if previous token before sqlCond is \"WHERE\". It could also be \"ON\" in case of join condition\r\n let prevToken;\r\n const sqlCondToken = expression.getFirstToken();\r\n for (const token of node.getTokens()) {\r\n if (token.getStart() === sqlCondToken.getStart()) {\r\n break;\r\n }\r\n prevToken = token;\r\n }\r\n if (prevToken && prevToken.getStr() === \"WHERE\") {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n}\r\nexports.SelectTranspiler = SelectTranspiler;\r\n//# sourceMappingURL=select.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/statements/select.js?");
14539
+ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.SelectTranspiler = void 0;\r\nconst abaplint = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nconst expressions_1 = __webpack_require__(/*! ../expressions */ \"./node_modules/@abaplint/transpiler/build/src/expressions/index.js\");\r\nclass SelectTranspiler {\r\n transpile(node, traversal, targetOverride) {\r\n var _a, _b, _c;\r\n let target = \"undefined\";\r\n if (targetOverride) {\r\n target = targetOverride;\r\n }\r\n else if (node.findFirstExpression(abaplint.Expressions.Target)) {\r\n target = traversal.traverse(node.findFirstExpression(abaplint.Expressions.Target)).getCode();\r\n }\r\n let select = \"SELECT \";\r\n select += (((_a = node.findFirstExpression(abaplint.Expressions.SQLFieldList)) === null || _a === void 0 ? void 0 : _a.concatTokens())\r\n || ((_b = node.findFirstExpression(abaplint.Expressions.SQLFieldListLoop)) === null || _b === void 0 ? void 0 : _b.concatTokens())) + \" \";\r\n select += ((_c = node.findFirstExpression(abaplint.Expressions.SQLFrom)) === null || _c === void 0 ? void 0 : _c.concatTokens()) + \" \";\r\n let where;\r\n for (const sqlCond of node.findAllExpressions(abaplint.Expressions.SQLCond)) {\r\n if (this.isWhereExpression(node, sqlCond)) {\r\n where = sqlCond;\r\n }\r\n }\r\n if (where) {\r\n select += \"WHERE \" + this.concatCond(where, traversal) + \" \";\r\n }\r\n const upTo = node.findFirstExpression(abaplint.Expressions.SQLUpTo);\r\n if (upTo) {\r\n select += upTo.concatTokens() + \" \";\r\n }\r\n const orderBy = node.findFirstExpression(abaplint.Expressions.SQLOrderBy);\r\n if (orderBy) {\r\n select += orderBy.concatTokens() + \" \";\r\n }\r\n for (const d of node.findAllExpressionsRecursive(abaplint.Expressions.Dynamic)) {\r\n const chain = d.findFirstExpression(abaplint.Expressions.FieldChain);\r\n if (chain) {\r\n const code = new expressions_1.FieldChainTranspiler(true).transpile(chain, traversal).getCode();\r\n const search = d.concatTokens();\r\n select = select.replace(search, `\" + ${code} + \"`);\r\n }\r\n }\r\n if (node.concatTokens().toUpperCase().startsWith(\"SELECT SINGLE \")) {\r\n select += \"UP TO 1 ROWS\";\r\n }\r\n const keys = this.findKeys(node, traversal);\r\n let primaryKey = \"\";\r\n if (keys.length > 0) {\r\n primaryKey = `, primaryKey: ${JSON.stringify(keys)}`;\r\n }\r\n return new chunk_1.Chunk().append(`await abap.statements.select(${target}, {select: \"${select.trim()}\"${primaryKey}});`, node, traversal);\r\n }\r\n findKeys(node, traversal) {\r\n let keys = [];\r\n const from = node.findAllExpressions(abaplint.Expressions.SQLFromSource).map(e => e.concatTokens());\r\n if (from.length === 1) {\r\n const tabl = traversal.findTable(from[0]);\r\n if (tabl) {\r\n keys = tabl.listKeys().map(k => k.toLowerCase());\r\n }\r\n }\r\n return keys;\r\n }\r\n concatCond(cond, traversal) {\r\n let ret = \"\";\r\n for (const c of cond.getChildren()) {\r\n if (c.get() instanceof abaplint.Expressions.SimpleSource3\r\n && c instanceof abaplint.Nodes.ExpressionNode\r\n && c.findDirectExpression(abaplint.Expressions.Constant) === undefined) {\r\n ret += \" '\\\" + \" + new expressions_1.SimpleSource3Transpiler(true).transpile(c, traversal).getCode() + \" + \\\"'\";\r\n }\r\n else if (c instanceof abaplint.Nodes.ExpressionNode) {\r\n ret += \" \" + this.concatCond(c, traversal);\r\n }\r\n else {\r\n ret += \" \" + c.concatTokens();\r\n }\r\n }\r\n return ret.trim();\r\n }\r\n isWhereExpression(node, expression) {\r\n // check if previous token before sqlCond is \"WHERE\". It could also be \"ON\" in case of join condition\r\n let prevToken;\r\n const sqlCondToken = expression.getFirstToken();\r\n for (const token of node.getTokens()) {\r\n if (token.getStart() === sqlCondToken.getStart()) {\r\n break;\r\n }\r\n prevToken = token;\r\n }\r\n if (prevToken && prevToken.getStr() === \"WHERE\") {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n}\r\nexports.SelectTranspiler = SelectTranspiler;\r\n//# sourceMappingURL=select.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/statements/select.js?");
14540
14540
 
14541
14541
  /***/ }),
14542
14542
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler-cli",
3
- "version": "2.1.11",
3
+ "version": "2.1.12",
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.1.11",
28
+ "@abaplint/transpiler": "^2.1.12",
29
29
  "@types/glob": "^7.2.0",
30
30
  "glob": "=7.2.0",
31
31
  "@types/progress": "^2.0.5",