diff --git a/packages/website/src/pages/docs/[...slug].tsx b/packages/website/src/pages/docs/[...slug].tsx index cb33c76e7..045f5965a 100644 --- a/packages/website/src/pages/docs/[...slug].tsx +++ b/packages/website/src/pages/docs/[...slug].tsx @@ -69,7 +69,7 @@ export const getStaticPaths: GetStaticPaths = async () => { ...versions.map((version) => ({ params: { slug: ['packages', packageName, version] } })), ...pkgs .map((pkg, idx) => - getMembers(pkg) + getMembers(pkg, versions[idx]!) // Filtering out enum `RESTEvents` because of interface with similar name `RestEvents` // causing next.js export to error .filter((member) => member.name !== 'RESTEvents') @@ -94,7 +94,7 @@ export const getStaticPaths: GetStaticPaths = async () => { return [ { params: { slug: ['packages', packageName, 'main'] } }, - ...getMembers(pkg!) + ...getMembers(pkg!, 'main') // Filtering out enum `RESTEvents` because of interface with similar name `RestEvents` // causing next.js export to error .filter((member) => member.name !== 'RESTEvents') @@ -124,9 +124,9 @@ export const getStaticPaths: GetStaticPaths = async () => { }; export const getStaticProps: GetStaticProps = async ({ params }) => { - const [, packageName = 'builders', branchName = 'main', member = 'ActionRowBuilder'] = params!.slug as string[]; + const [, packageName = 'builders', branchName = 'main', member] = params!.slug as string[]; - const [memberName, overloadIndex] = member.split(':') as [string, string | undefined]; + const [memberName, overloadIndex] = member?.split(':') ?? []; try { const readme = await readFile(join(__dirname, '..', '..', '..', '..', '..', packageName, 'README.md'), 'utf-8'); diff --git a/packages/website/src/util/model.server.ts b/packages/website/src/util/model.server.ts index d165979ba..a1a96bd55 100644 --- a/packages/website/src/util/model.server.ts +++ b/packages/website/src/util/model.server.ts @@ -16,9 +16,13 @@ export function findMemberByKey(model: ApiModel, packageName: string, containerK export function findMember( model: ApiModel, packageName: string, - memberName: string, + memberName: string | undefined, version: string, ): ReturnType | undefined { + if (!memberName) { + return undefined; + } + const pkg = findPackage(model, packageName)!; const member = (pkg.members[0] as ApiEntryPoint).findMembersByName(memberName)[0]; diff --git a/packages/website/src/util/parse.server.ts b/packages/website/src/util/parse.server.ts index 99cbf9981..10ea0ed0c 100644 --- a/packages/website/src/util/parse.server.ts +++ b/packages/website/src/util/parse.server.ts @@ -212,7 +212,7 @@ export function genParameter(model: ApiModel, param: Parameter, version: string) }; } -export function getMembers(pkg: ApiPackage, version = 'main') { +export function getMembers(pkg: ApiPackage, version: string) { return pkg.members[0]!.members.map((member) => ({ name: member.displayName, kind: member.kind as string,