fix(icons): Rename fingerprint icon to fingerprint-pattern (#3767)

* Rename fingerprint icon

* Fix as well for lucide-react

* Fix lint error
This commit is contained in:
Eric Fennis
2025-11-17 09:32:09 +01:00
committed by GitHub
parent a94044cc3a
commit 80d6f737e0
9 changed files with 34 additions and 13 deletions

View File

@@ -16,5 +16,13 @@
"security",
"medical",
"devices"
],
"aliases": [
{
"name": "fingerprint",
"deprecationReason": "alias.name",
"deprecated": true,
"toBeRemovedInVersion": "v1.0"
}
]
}

View File

Before

Width:  |  Height:  |  Size: 608 B

After

Width:  |  Height:  |  Size: 608 B

View File

@@ -42,7 +42,7 @@
"build": "pnpm clean && pnpm copy:license && pnpm build:icons && pnpm typecheck && pnpm build:bundles",
"copy:license": "cp ../../LICENSE ./LICENSE",
"clean": "rm -rf dist && rm -rf stats && rm -rf ./src/icons/*.ts && rm -f dynamic.* && rm -f dynamicIconImports.d.ts",
"build:icons": "build-icons --output=./src --templateSrc=./scripts/exportTemplate.mts --renderUniqueKey --withAliases --withDynamicImports --separateAliasesFile --aliasesFileExtension=.ts --iconFileExtension=.ts --exportFileName=index.ts",
"build:icons": "build-icons --output=./src --templateSrc=./scripts/exportTemplate.mts --renderUniqueKey --withAliases --withDynamicImports --separateAliasesFile --separateAliasesFileIgnore=fingerprint --aliasesFileExtension=.ts --iconFileExtension=.ts --exportFileName=index.ts",
"build:bundles": "rollup -c ./rollup.config.mjs",
"typecheck": "tsc",
"typecheck:watch": "tsc -w",

View File

@@ -3,6 +3,8 @@ import getIconMetaData from '@lucide/build-icons/utils/getIconMetaData';
const ICONS_DIR = path.resolve(process.cwd(), '../../icons');
const ignoreAliases = ['fingerprint'];
export default async function getAliasesEntryNames() {
const metaJsonFiles = await getIconMetaData(ICONS_DIR);
@@ -10,5 +12,5 @@ export default async function getAliasesEntryNames() {
const aliases = iconWithAliases.flatMap(({ aliases }) => aliases);
return aliases.map((alias) => path.join('src/icons', `${alias.name}.ts`));
return aliases.filter(alias => !ignoreAliases.includes(alias.name)).map((alias) => path.join('src/icons', `${alias.name}.ts`));
}

View File

@@ -61,7 +61,7 @@
"build:transpile": "tsc --jsx preserve -t es2020 --rootDir src --outDir dist --noEmit false",
"build:version": "node ./scripts/replaceVersion.mjs",
"build:bundle": "rollup -c rollup.config.mjs",
"build:icons": "build-icons --output=./src --templateSrc=./scripts/exportTemplate.mts --renderUniqueKey --withAliases --separateAliasesFile --aliasesFileExtension=.ts --iconFileExtension=.tsx --exportFileName=index.ts",
"build:icons": "build-icons --output=./src --templateSrc=./scripts/exportTemplate.mts --renderUniqueKey --withAliases --separateAliasesFile --separateAliasesFileIgnore=fingerprint --aliasesFileExtension=.ts --iconFileExtension=.tsx --exportFileName=index.ts",
"test": "pnpm build:icons && vitest run",
"version": "pnpm version --git-tag-version=false"
},

View File

@@ -4,7 +4,7 @@ import fs from 'fs';
import { toPascalCase, resetFile, appendFile } from '@lucide/helpers';
import deprecationReasonTemplate from '../../utils/deprecationReasonTemplate.ts';
import getExportString from './getExportString.ts';
import type { IconMetadata, IconNode } from '../../types.ts';
import type { IconMetadata } from '../../types.ts';
import { type INode } from 'svgson';
interface GenerateAliasesFilesOptions {
@@ -17,6 +17,7 @@ interface GenerateAliasesFilesOptions {
aliasNamesOnly?: boolean;
separateAliasesFile?: boolean;
separateAliasesFileExtension?: string;
separateAliasesFileIgnore?: string;
showLog?: boolean;
}
@@ -30,6 +31,7 @@ export default async function generateAliasesFiles({
aliasNamesOnly = false,
separateAliasesFile = false,
separateAliasesFileExtension,
separateAliasesFileIgnore,
showLog = true,
}: GenerateAliasesFilesOptions) {
const iconsDistDirectory = path.join(outputDirectory, `icons`);
@@ -57,6 +59,7 @@ export default async function generateAliasesFiles({
await Promise.all(
icons.map(async (iconName, index) => {
const componentName = toPascalCase(iconName);
const iconAliases = iconMetaData[iconName]?.aliases?.map((alias) => {
if (typeof alias === 'string') {
return {
@@ -111,7 +114,14 @@ export default async function generateAliasesFiles({
})
: '';
if (separateAliasesFile) {
if (separateAliasesFileIgnore?.includes(alias.name)) {
console.log('Skipped alias file for', alias.name);
}
const createSeparateAliasesFile =
separateAliasesFile && !separateAliasesFileIgnore?.includes(alias.name);
if (createSeparateAliasesFile) {
const output = `export { default } from "./${iconName}${
separateAliasesFileExtension ? iconFileExtension : ''
}";\n`;
@@ -128,7 +138,7 @@ export default async function generateAliasesFiles({
return;
}
const exportFileIcon = separateAliasesFile ? alias.name : iconName;
const exportFileIcon = createSeparateAliasesFile ? alias.name : iconName;
if (index > 0) {
aliasFileContent += '\n';

View File

@@ -1,9 +1,10 @@
import path from 'path';
import { resetFile, appendFile } from '@lucide/helpers';
import type { IconMetadata, IconNode } from '../types.ts';
import type { IconMetadata } from '../types.ts';
import type { INode } from 'svgson';
interface GenerateDynamicImports {
iconNodes: Record<string, IconNode>;
iconNodes: Record<string, INode>;
outputDirectory: string;
fileExtension: string;
iconMetaData: Record<string, IconMetadata>;

View File

@@ -1,13 +1,11 @@
import path from 'path';
// eslint-disable-next-line import/no-extraneous-dependencies
import { toPascalCase, toCamelCase, resetFile, appendFile } from '@lucide/helpers';
import type { IconNode } from '../types.ts';
import type { INode } from 'svgson';
export default async function generateExportFile(
inputEntry: string,
outputDirectory: string,
iconNodes: IconNode,
iconNodes: Record<string, INode>,
exportModuleNameCasing: 'camel' | 'pascal',
iconFileExtension = '',
) {

View File

@@ -26,6 +26,7 @@ interface CliArguments {
withDynamicImports?: boolean;
separateAliasesFile?: boolean;
separateAliasesFileExtension?: string;
separateAliasesFileIgnore?: string;
separateIconFileExport?: boolean;
separateIconFileExportExtension?: string;
aliasesFileExtension?: string;
@@ -56,6 +57,7 @@ const {
withDynamicImports = false,
separateAliasesFile = false,
separateAliasesFileExtension = undefined,
separateAliasesFileIgnore = undefined,
separateIconFileExport = false,
separateIconFileExportExtension = undefined,
aliasesFileExtension = '.js',
@@ -98,10 +100,10 @@ async function buildIcons() {
iconFileExtension,
outputDirectory: OUTPUT_DIR,
fileExtension: aliasesFileExtension,
exportModuleNameCasing,
aliasImportFileExtension,
separateAliasesFile,
separateAliasesFileExtension,
separateAliasesFileIgnore,
showLog: !silent,
});
}