mirror of
https://github.com/lucide-icons/lucide.git
synced 2026-11-13 13:48:26 +00:00
Aliases redirect on site (#1959)
* test aliases * test * Add redirect routes * Formatting
This commit is contained in:
@@ -28,7 +28,7 @@ import iconNode from '../iconNodes/${iconName}.node.json'
|
||||
import metaData from '../../../../icons/${iconName}.json'
|
||||
import releaseData from '../releaseMetadata/${iconName}.json'
|
||||
|
||||
const { tags, categories, contributors } = metaData
|
||||
const { tags, categories, contributors, aliases } = metaData
|
||||
|
||||
const iconDetails = {
|
||||
name: '${iconName}',
|
||||
@@ -36,6 +36,7 @@ const iconDetails = {
|
||||
contributors,
|
||||
tags,
|
||||
categories,
|
||||
aliases,
|
||||
...releaseData,
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,27 @@
|
||||
import path from 'path';
|
||||
import fs from 'fs';
|
||||
// eslint-disable-next-line import/no-named-as-default, import/no-named-as-default-member
|
||||
import getIconMetaData from '../tools/build-icons/utils/getIconMetaData.mjs';
|
||||
import { getCurrentDirPath } from './helpers.mjs';
|
||||
|
||||
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.join('|');
|
||||
|
||||
return {
|
||||
src: `/icons/(${aliasRouteMatches})`,
|
||||
status: 302,
|
||||
headers: {
|
||||
Location: `/icons/${iconName}`,
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
const vercelRouteConfig = {
|
||||
version: 3,
|
||||
@@ -15,21 +35,12 @@ const vercelRouteConfig = {
|
||||
src: '(?<url>/api/.*)',
|
||||
dest: '/__nitro?url=$url',
|
||||
},
|
||||
// {
|
||||
// source: '/icon/:path*',
|
||||
// destination: '/icons/:path*',
|
||||
// permanent: true,
|
||||
// },
|
||||
// {
|
||||
// src: '/(.*)',
|
||||
// status: 404,
|
||||
// dest: '/static/404.html',
|
||||
// },
|
||||
...iconAliasesRedirectRoutes,
|
||||
],
|
||||
};
|
||||
|
||||
const output = JSON.stringify(vercelRouteConfig, null, 2);
|
||||
|
||||
const vercelOutputJosn = path.resolve(currentDir, '.vercel/output/config.json');
|
||||
const vercelOutputJSON = path.resolve(currentDir, '.vercel/output/config.json');
|
||||
|
||||
fs.writeFileSync(vercelOutputJosn, output, 'utf-8');
|
||||
fs.writeFileSync(vercelOutputJSON, output, 'utf-8');
|
||||
|
||||
Reference in New Issue
Block a user