mirror of
https://github.com/lucide-icons/lucide.git
synced 2025-12-16 07:27:42 +01:00
Alias support for lucide package (#1592)
* Setup aliases for lucide * Make aliases work for lucide package
This commit is contained in:
@@ -12,6 +12,7 @@ export default async function generateAliasesFile({
|
||||
iconFileExtension = '.js',
|
||||
aliases,
|
||||
aliasImportFileExtension,
|
||||
aliasNamesOnly = false,
|
||||
separateAliasesFile = false,
|
||||
showLog = true,
|
||||
}) {
|
||||
@@ -24,14 +25,28 @@ export default async function generateAliasesFile({
|
||||
|
||||
// Generate Import for Icon VNodes
|
||||
await Promise.all(
|
||||
icons.map(async (iconName) => {
|
||||
icons.map(async (iconName, index) => {
|
||||
const componentName = toPascalCase(iconName);
|
||||
const iconAliases = aliases[iconName]?.aliases;
|
||||
|
||||
let importString = `// ${componentName} aliases\n`;
|
||||
let importString = '';
|
||||
|
||||
importString += getImportString(`${componentName}Icon`, iconName, aliasImportFileExtension);
|
||||
importString += getImportString(`Lucide${componentName}`, iconName, aliasImportFileExtension);
|
||||
if ((iconAliases != null && Array.isArray(iconAliases)) || !aliasNamesOnly) {
|
||||
if (index > 0) {
|
||||
importString += '\n';
|
||||
}
|
||||
|
||||
importString += `// ${componentName} aliases\n`;
|
||||
}
|
||||
|
||||
if (!aliasNamesOnly) {
|
||||
importString += getImportString(`${componentName}Icon`, iconName, aliasImportFileExtension);
|
||||
importString += getImportString(
|
||||
`Lucide${componentName}`,
|
||||
iconName,
|
||||
aliasImportFileExtension,
|
||||
);
|
||||
}
|
||||
|
||||
if (iconAliases != null && Array.isArray(iconAliases)) {
|
||||
await Promise.all(
|
||||
@@ -57,23 +72,24 @@ export default async function generateAliasesFile({
|
||||
exportFileIcon,
|
||||
aliasImportFileExtension,
|
||||
);
|
||||
importString += getImportString(
|
||||
`${componentNameAlias}Icon`,
|
||||
exportFileIcon,
|
||||
aliasImportFileExtension,
|
||||
);
|
||||
|
||||
importString += getImportString(
|
||||
`Lucide${componentNameAlias}`,
|
||||
exportFileIcon,
|
||||
aliasImportFileExtension,
|
||||
);
|
||||
if (!aliasNamesOnly) {
|
||||
importString += getImportString(
|
||||
`${componentNameAlias}Icon`,
|
||||
exportFileIcon,
|
||||
aliasImportFileExtension,
|
||||
);
|
||||
|
||||
importString += getImportString(
|
||||
`Lucide${componentNameAlias}`,
|
||||
exportFileIcon,
|
||||
aliasImportFileExtension,
|
||||
);
|
||||
}
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
importString += '\n';
|
||||
|
||||
appendFile(importString, fileName, outputDirectory);
|
||||
}),
|
||||
);
|
||||
|
||||
@@ -31,6 +31,7 @@ const {
|
||||
importImportFileExtension = '',
|
||||
exportFileName = 'index.js',
|
||||
withAliases = false,
|
||||
aliasNamesOnly = false,
|
||||
withDynamicImports = false,
|
||||
separateAliasesFile = false,
|
||||
aliasesFileExtension = '.js',
|
||||
@@ -66,6 +67,7 @@ async function buildIcons() {
|
||||
await generateAliasesFile({
|
||||
iconNodes: icons,
|
||||
aliases,
|
||||
aliasNamesOnly,
|
||||
iconFileExtension,
|
||||
outputDirectory: OUTPUT_DIR,
|
||||
fileExtension: aliasesFileExtension,
|
||||
|
||||
Reference in New Issue
Block a user