UNPKG

@ui5/task-adaptation

Version:

Custom task for ui5-builder which allows building UI5 Flexibility Adaptation Projects for SAP BTP, Cloud Foundry environment

23 lines (20 loc) 799 B
import { parse } from "meriyah"; import { traverse } from "../../src/util/commonUtil.js"; export default function convert(content: string) { return [ extractEsmClass ].reduce((result, converter) => converter(result), content); } function extractEsmClass(content: string) { const result = parse(content, { ranges: true }); let classCode: { start: number, end: number } | undefined; traverse(result, [], (json, key) => { if (key === "type" && json[key] === "ClassDeclaration") { if (classCode) { throw new Error("Only one class declaration per module is allowed"); } classCode = json; } }); return classCode && "export default " + content.substring(classCode.start, classCode.end) || content; }