UNPKG

@abaplint/transpiler

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