Aliases redirect on site (#1959)

* test aliases

* test

* Add redirect routes

* Formatting
This commit is contained in:
Eric Fennis
2024-03-08 15:20:15 +01:00
committed by GitHub
parent dd39fa328c
commit 76d449a974
2 changed files with 25 additions and 13 deletions
+2 -1
View File
@@ -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,
}
+23 -12
View File
@@ -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');