@abaplint/transpiler
Version:
32 lines • 1.46 kB
JavaScript
;
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