@abaplint/transpiler
Version:
22 lines • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CallKernelTranspiler = void 0;
const abaplint = require("@abaplint/core");
const chunk_1 = require("../chunk");
class CallKernelTranspiler {
transpile(node, traversal) {
const lookup = traversal.lookupClassOrInterface("KERNEL_CALL", node.getFirstToken());
const options = [];
const name = traversal.traverse(node.getChildren()[1]);
options.push("name: " + name.getCode());
for (const id of node.findDirectExpressions(abaplint.Expressions.KernelId)) {
const key = id.getChildren()[1].concatTokens().replace(/'/g, "").toLowerCase();
const value = traversal.traverse(id.getChildren()[3]);
options.push(key + ": " + value.getCode());
}
const call = `await ${lookup}.call({${options.join(",")}});`;
return new chunk_1.Chunk().append(`if (${lookup} === undefined) throw new Error("Call kernel class missing");\n${call}`, node, traversal);
}
}
exports.CallKernelTranspiler = CallKernelTranspiler;
//# sourceMappingURL=call_kernel.js.map