Files
lucide/docs/scripts/writeVercelOutput.mjs
T
2026-02-26 14:54:30 +01:00

40 lines
1.1 KiB
JavaScript

import path from 'path';
import fs from 'fs';
import { getIconMetaData } from '@lucide/build-icons';
import { getCurrentDirPath } from '@lucide/helpers';
const currentDir = process.cwd();
const scriptDir = getCurrentDirPath(import.meta.url);
const iconMetaData = await getIconMetaData(path.resolve(scriptDir, '../../icons'));
const iconAliasesRedirectRoutes = Object.entries(iconMetaData)
.filter(([, { aliases }]) => aliases?.length)
.map(([iconName, { aliases }]) => {
const aliasRouteMatches = aliases.map((alias) => alias.name).join('|');
return {
src: `/icons/${aliasRouteMatches}`,
status: 302,
headers: {
Location: `/icons/${iconName}`,
},
};
});
const vercelOutputJSON = path.resolve(currentDir, '.vercel/output/config.json');
const vercelConfig = fs.promises.readFile(vercelOutputJSON, 'utf-8');
const vercelRouteConfig = JSON.parse(vercelConfig);
vercelRouteConfig.routes = [
...iconAliasesRedirectRoutes,
...vercelRouteConfig.routes,
]
const output = JSON.stringify(vercelRouteConfig, null, 2);
await fs.promises.writeFile(vercelOutputJSON, output, 'utf-8');