From 55199765beff1153b643d44ea5a7964096d6c98f Mon Sep 17 00:00:00 2001 From: pheralb Date: Sun, 31 Aug 2025 16:35:30 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=9B=A0=EF=B8=8F=20Improve=20parseSvgFilen?= =?UTF-8?q?ame=20to=20support=20firstUpperCase=20option=20for=20component?= =?UTF-8?q?=20naming?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- generate-registry.ts | 1 + src/utils/parseSvgFilename.ts | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/generate-registry.ts b/generate-registry.ts index 0c3cd24..e7e3200 100644 --- a/generate-registry.ts +++ b/generate-registry.ts @@ -191,6 +191,7 @@ async function convertSvgToReact(svgPath: string): Promise { const componentName = parseSvgFilename({ file: path.basename(svgPath, ".svg"), log: true, + firstUpperCase: true, }); const code = await parseReactSvgContent({ componentName, diff --git a/src/utils/parseSvgFilename.ts b/src/utils/parseSvgFilename.ts index 47b1f83..a6af457 100644 --- a/src/utils/parseSvgFilename.ts +++ b/src/utils/parseSvgFilename.ts @@ -1,15 +1,18 @@ interface ParseSvgFilename { file: string; log?: boolean; + firstUpperCase?: boolean; } export const parseSvgFilename = (params: ParseSvgFilename): string => { - const { file, log } = params; + const { file, log, firstUpperCase = false } = params; const name = file.replace(/\.svg$/i, ""); let component = name .replace(/[-_\s]+(.)?/g, (_, char) => (char ? char.toUpperCase() : "")) - .replace(/^(.)/, (char) => char.toLowerCase()); + .replace(/^(.)/, (char) => + firstUpperCase ? char.toUpperCase() : char.toLowerCase(), + ); if (/^\d/.test(component)) { if (log) {