fix(IRS): also generate index routes

This commit is contained in:
iCrawl
2022-07-23 00:11:19 +02:00
parent 82165d4f80
commit 86a9be7d33

View File

@@ -24,7 +24,7 @@ export const getStaticPaths: GetStaticPaths = async () => {
await Promise.all( await Promise.all(
packages.map(async (packageName) => { packages.map(async (packageName) => {
if (packageName === 'rest') { if (packageName === 'rest') {
return { params: { slug: ['main', 'packages', packageName, ''] } }; return { params: { slug: ['main', 'packages', packageName] } };
} }
const res = await fetch(`https://docs.discordjs.dev/docs/${packageName}/main.api.json`); const res = await fetch(`https://docs.discordjs.dev/docs/${packageName}/main.api.json`);
@@ -34,7 +34,10 @@ export const getStaticPaths: GetStaticPaths = async () => {
const model = createApiModel(data); const model = createApiModel(data);
const pkg = findPackage(model, packageName); const pkg = findPackage(model, packageName);
return getMembers(pkg!).map((member) => ({ params: { slug: ['main', 'packages', packageName, member.name] } })); return [
{ params: { slug: ['main', 'packages', packageName] } },
...getMembers(pkg!).map((member) => ({ params: { slug: ['main', 'packages', packageName, member.name] } })),
];
}), }),
) )
).flat(); ).flat();
@@ -46,31 +49,21 @@ export const getStaticPaths: GetStaticPaths = async () => {
}; };
export const getStaticProps: GetStaticProps = async ({ params }) => { export const getStaticProps: GetStaticProps = async ({ params }) => {
const [branchName, , packageName, memberName] = params!.slug as string[]; const [branchName = 'main', , packageName = 'builders', memberName] = params!.slug as string[];
const UnknownResponse = new Response('Not Found', { const res = await fetch(`https://docs.discordjs.dev/docs/${packageName}/${branchName}.api.json`);
status: 404,
});
const res = await fetch(`https://docs.discordjs.dev/docs/${packageName!}/${branchName!}.api.json`);
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const data = await res.json().catch(() => { const data = await res.json();
throw UnknownResponse;
});
const model = createApiModel(data); const model = createApiModel(data);
const pkg = findPackage(model, packageName!); const pkg = findPackage(model, packageName);
if (!pkg) {
throw UnknownResponse;
}
return { return {
props: { props: {
packageName, packageName,
data: { data: {
members: getMembers(pkg), members: pkg ? getMembers(pkg) : [],
member: memberName ? findMember(model, packageName!, memberName)!.toJSON() : null, member: memberName ? findMember(model, packageName, memberName)?.toJSON() ?? null : null,
}, },
}, },
}; };