From 16166f838b36209c596a52b6fcd45e13c4939792 Mon Sep 17 00:00:00 2001 From: Jakob Guddas Date: Fri, 1 Aug 2025 12:21:31 +0200 Subject: [PATCH] feat(lucide-static): include aliases in icons directory (#3368) --- packages/lucide-static/scripts/buildLib.mts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/lucide-static/scripts/buildLib.mts b/packages/lucide-static/scripts/buildLib.mts index f90be4a42..21286555f 100644 --- a/packages/lucide-static/scripts/buildLib.mts +++ b/packages/lucide-static/scripts/buildLib.mts @@ -31,8 +31,24 @@ createDirectory(ICON_MODULE_DIR); const svgFiles = await readSvgDirectory(ICONS_DIR); const svgs = await readSvgs(svgFiles, ICONS_DIR); +const aliases = (await Promise.all( + (await readSvgDirectory(ICONS_DIR, '.json')).map(async (metadataFile) => { + const filePath = path.join(ICONS_DIR, metadataFile); + const fileContent = await fs.promises.readFile(filePath, 'utf-8'); + const { aliases }: {aliases: undefined | (string | { name: string })[]} = JSON.parse(fileContent); + if (!aliases?.length) return []; + const svgName = path.basename(metadataFile, '.json'); + const svg = svgs.find((s) => s.name === svgName); + if (!svg) return []; + return aliases.map(alias => ({ + ...svg, + name: typeof alias === 'string' ? alias : alias.name, + })); + }) +)).flat(); + await Promise.all([ generateSprite(svgs, PACKAGE_DIR, license), generateIconNodes(svgs, PACKAGE_DIR), - copyIcons(svgs, PACKAGE_DIR, license), + copyIcons([...svgs, ...aliases], PACKAGE_DIR, license), ]);