UNPKG

@abaplint/transpiler

Version:
32 lines 1.5 kB
"use strict"; 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