UNPKG

@abaplint/transpiler

Version:
32 lines 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UpdateDatabaseTranspiler = void 0; const abaplint = require("@abaplint/core"); const chunk_1 = require("../chunk"); const expressions_1 = require("../expressions"); class UpdateDatabaseTranspiler { transpile(node, traversal) { const dbtab = node.findFirstExpression(abaplint.Expressions.DatabaseTable); if (dbtab === undefined) { throw new Error("internal error, UpdateDatabaseTranspiler"); } const table = new expressions_1.DatabaseTableTranspiler(false).transpile(dbtab, traversal); const options = []; const cond = node.findFirstExpression(abaplint.Expressions.SQLCond); if (cond) { const ttab = traversal.traverse(cond); options.push(`"where": "` + ttab.getCode() + `"`); } const sets = node.findAllExpressions(abaplint.Expressions.SQLFieldAndValue); if (sets.length > 0) { const s = []; for (const set of sets) { s.push(new expressions_1.SQLFieldAndValueTranspiler().transpile(set, traversal).getCode()); } options.push(`"set": [${s.join(",")}]`); } return new chunk_1.Chunk(`await abap.statements.updateDatabase(${table.getCode()}, {${options.join(", ")}});`); } } exports.UpdateDatabaseTranspiler = UpdateDatabaseTranspiler; //# sourceMappingURL=update_database.js.map