UNPKG

@abaplint/transpiler

Version:
32 lines 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OpenCursorTranspiler = void 0; const abaplint = require("@abaplint/core"); const chunk_1 = require("../chunk"); const insert_database_1 = require("./insert_database"); class OpenCursorTranspiler { transpile(node, traversal) { const target = traversal.traverse(node.findDirectExpression(abaplint.Expressions.SQLTarget)).getCode(); const selectExpression = node.findDirectExpression(abaplint.Expressions.Select); let select = "SELECT "; select += traversal.traverse(selectExpression?.findDirectExpression(abaplint.Expressions.SQLFieldList)).getCode() + " "; select += traversal.traverse(selectExpression?.findDirectExpression(abaplint.Expressions.SQLFrom)).getCode(); const cond = selectExpression?.findDirectExpression(abaplint.Expressions.SQLCond); if (cond) { select += "WHERE " + traversal.traverse(node).getCode(); } const orderBy = selectExpression?.findDirectExpression(abaplint.Expressions.SQLOrderBy); if (orderBy) { select += "ORDER BY " + traversal.traverse(node).getCode(); } const options = []; const connection = node.findDirectExpression(abaplint.Expressions.DatabaseConnection); if (connection) { const con = (0, insert_database_1.findConnection)(connection); options.push(`"connection": "${con}"`); } return new chunk_1.Chunk().append(`await abap.statements.openCursor(${target}, "${select}", {${options.join(", ")}});`, node, traversal); } } exports.OpenCursorTranspiler = OpenCursorTranspiler; //# sourceMappingURL=open_cursor.js.map