Files
lucide/docs/scripts/writeVercelOutput.mjs
Eric Fennis a1d17eedc9 fix: Redirect aliases site (#2769)
* Fix redirects site

* Remove console.log
2025-02-06 15:39:07 +01:00

48 lines
1.2 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 }]) => {
aliases = aliases.map((alias) => (typeof alias === 'object' ? alias.name : alias));
const aliasRouteMatches = aliases.join('|');
return {
src: `/icons/${aliasRouteMatches}`,
status: 302,
headers: {
Location: `/icons/${iconName}`,
},
};
});
const vercelRouteConfig = {
version: 3,
overrides: {},
cleanUrls: true,
routes: [
{
handle: 'filesystem',
},
{
src: '(?<url>/api/.*)',
dest: '/__nitro?url=$url',
},
...iconAliasesRedirectRoutes,
],
};
const output = JSON.stringify(vercelRouteConfig, null, 2);
const vercelOutputJSON = path.resolve(currentDir, '.vercel/output/config.json');
fs.writeFileSync(vercelOutputJSON, output, 'utf-8');