diff --git a/packages/ai/.ui5-cem-aliases.json b/packages/ai/.ui5-cem-aliases.json new file mode 100644 index 000000000000..7f040816243c --- /dev/null +++ b/packages/ai/.ui5-cem-aliases.json @@ -0,0 +1,4 @@ +{ + "BaseTextArea": "TextArea", + "BaseInput": "Input" +} \ No newline at end of file diff --git a/packages/tools/lib/cem/custom-elements-manifest.config.mjs b/packages/tools/lib/cem/custom-elements-manifest.config.mjs index a97d7bf1a2bb..ab5ad43f5e76 100644 --- a/packages/tools/lib/cem/custom-elements-manifest.config.mjs +++ b/packages/tools/lib/cem/custom-elements-manifest.config.mjs @@ -27,7 +27,17 @@ import { generateCustomData } from "cem-plugin-vs-code-custom-data-generator"; import { customElementJetBrainsPlugin } from "custom-element-jet-brains-integration"; const packageJSON = JSON.parse(fs.readFileSync("./package.json")); +let aliasMap = {}; + const devMode = process.env.UI5_CEM_MODE === "dev"; +try { + aliasMap = JSON.parse(fs.readFileSync("./.ui5-cem-aliases.json")); +} catch (e) { + if (devMode) { + console.warn("No .ui5-cem-aliases.json file found. Continuing without aliases."); + } +} + const extractClassNodeJSDoc = node => { const fileContent = node.getFullText(); @@ -486,6 +496,12 @@ export default { } } + moduleDoc.declarations.forEach(declaration => { + if (declaration.superclass?.name && aliasMap[declaration.superclass.name]) { + declaration.superclass.name = aliasMap[declaration.superclass.name]; + } + }) + const typeReferences = new Set(); const registerTypeReference = reference => typeReferences.add(JSON.stringify(reference))