@abaplint/transpiler
Version:
32 lines • 1.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FormTranspiler = void 0;
const abaplint = require("@abaplint/core");
const chunk_1 = require("../chunk");
const unique_identifier_1 = require("../unique_identifier");
const traversal_1 = require("../traversal");
class FormTranspiler {
transpile(node, traversal) {
unique_identifier_1.UniqueIdentifier.resetIndexBackup();
const name = node.findFirstExpression(abaplint.Expressions.FormName).getFirstToken().getStr();
const scope = traversal.findCurrentScopeByToken(node.getFirstToken());
const def = scope?.findFormDefinition(name);
const ret = new chunk_1.Chunk("async function " + name + "(INPUT) {");
const params = [];
for (const p of def?.getChangingParameters() || []) {
params.push(`let ${traversal_1.Traversal.prefixVariable(p.getName())} = INPUT.${p.getName()};`);
}
for (const p of def?.getTablesParameters() || []) {
params.push(`let ${traversal_1.Traversal.prefixVariable(p.getName())} = INPUT.${p.getName()};`);
}
for (const p of def?.getUsingParameters() || []) {
params.push(`let ${traversal_1.Traversal.prefixVariable(p.getName())} = INPUT.${p.getName()};`);
}
if (params.length > 0) {
ret.appendString("\n" + params.join("\n"));
}
return ret;
}
}
exports.FormTranspiler = FormTranspiler;
//# sourceMappingURL=form.js.map