From de4207940cb07f7c20b9a1ac1f4a58a49e8e0183 Mon Sep 17 00:00:00 2001 From: Cory LaViska Date: Fri, 5 Nov 2021 09:23:30 -0400 Subject: [PATCH] add react event names to manifest --- custom-elements-manifest.config.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/custom-elements-manifest.config.js b/custom-elements-manifest.config.js index 1d6286446..6f831eedf 100644 --- a/custom-elements-manifest.config.js +++ b/custom-elements-manifest.config.js @@ -1,5 +1,6 @@ import fs from 'fs'; import commentParser from 'comment-parser'; +import pascalCase from 'pascal-case'; const packageData = JSON.parse(fs.readFileSync('./package.json', 'utf8')); const { name, description, version, author, homepage, license } = packageData; @@ -81,6 +82,23 @@ export default { }); } } + }, + + { + name: 'shoelace-react-event-names', + analyzePhase({ ts, node, moduleDoc, context }) { + switch (node.kind) { + case ts.SyntaxKind.ClassDeclaration: + const className = node.name.getText(); + const classDoc = moduleDoc?.declarations?.find(declaration => declaration.name === className); + + if (classDoc?.events) { + classDoc.events.map(event => { + event.reactName = `on${pascalCase(event.name)}`; + }); + } + } + } } ] };