Alias support for lucide package (#1592)

* Setup aliases for lucide

* Make aliases work for lucide package
This commit is contained in:
Eric Fennis
2023-10-17 21:27:46 +02:00
committed by GitHub
parent 52adb78df8
commit dbfce919fc
9 changed files with 58 additions and 26 deletions

View File

@@ -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);
}),
);

View File

@@ -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,