diff --git a/packages/website/src/components/SidebarLayout.tsx b/packages/website/src/components/SidebarLayout.tsx index a372eb0cb..2eb2b6d63 100644 --- a/packages/website/src/components/SidebarLayout.tsx +++ b/packages/website/src/components/SidebarLayout.tsx @@ -34,6 +34,7 @@ import useSWR from 'swr'; import { SidebarItems } from './SidebarItems'; import type { ApiItemJSON } from '~/DocModel/ApiNodeJSONEncoder'; import type { findMember } from '~/util/model.server'; +import { PACKAGES } from '~/util/packages'; import type { getMembers } from '~/util/parse.server'; const fetcher = (url: string) => fetch(url).then((res) => res.json()); @@ -89,19 +90,9 @@ const useStyles = createStyles( }), ); -const libraries = [ - { label: 'builders', value: 'builders' }, - { label: 'collection', value: 'collection' }, - { label: 'discord.js', value: 'discord.js' }, - { label: 'proxy', value: 'proxy' }, - { label: 'rest', value: 'rest' }, - { label: 'voice', value: 'voice' }, - { label: 'ws', value: 'ws' }, -]; - -const libraryMenuItems = libraries.map((item) => ( - - {item.label} +const packageMenuItems = PACKAGES.map((pkg) => ( + + {pkg} )); @@ -191,7 +182,7 @@ export function SidebarLayout({ - {libraryMenuItems} + {packageMenuItems} { - const packages = ['builders', 'collection', 'proxy', 'rest', 'voice', 'ws']; - const pkgs = ( await Promise.all( - packages.map(async (packageName) => { + PACKAGES.map(async (packageName) => { try { let data: any[] = []; let versions: string[] = []; @@ -121,7 +120,7 @@ export const getStaticPaths: GetStaticPaths = async () => { return { paths: pkgs, - fallback: true, + fallback: 'blocking', }; }; diff --git a/packages/website/src/pages/docs/packages/[package]/index.tsx b/packages/website/src/pages/docs/packages/[package]/index.tsx index 8656f0af4..23dd85da0 100644 --- a/packages/website/src/pages/docs/packages/[package]/index.tsx +++ b/packages/website/src/pages/docs/packages/[package]/index.tsx @@ -15,6 +15,7 @@ import Link from 'next/link'; import { useRouter } from 'next/router'; import type { GetStaticPaths, GetStaticProps } from 'next/types'; import { VscArrowLeft, VscArrowRight, VscPackage } from 'react-icons/vsc'; +import { PACKAGES } from '~/util/packages'; interface VersionProps { packageName: string; @@ -24,9 +25,7 @@ interface VersionProps { } export const getStaticPaths: GetStaticPaths = () => { - const packages = ['builders', 'collection', 'proxy', 'rest', 'voice', 'ws']; - - const versions = packages.map((packageName) => ({ params: { package: packageName } })); + const versions = PACKAGES.map((packageName) => ({ params: { package: packageName } })); return { paths: versions, diff --git a/packages/website/src/pages/docs/packages/index.tsx b/packages/website/src/pages/docs/packages/index.tsx index 437933715..4e4cbe0ad 100644 --- a/packages/website/src/pages/docs/packages/index.tsx +++ b/packages/website/src/pages/docs/packages/index.tsx @@ -11,6 +11,7 @@ import { } from '@mantine/core'; import Link from 'next/link'; import { VscArrowRight, VscPackage } from 'react-icons/vsc'; +import { PACKAGES } from '~/util/packages'; const useStyles = createStyles((theme) => ({ control: { @@ -29,15 +30,13 @@ export default function PackagesRoute() { const { classes } = useStyles(); const { colorScheme } = useMantineColorScheme(); - const packages = ['builders', 'collection', 'proxy', 'rest', 'voice', 'ws']; - return ( Select a package: - {packages.map((pkg) => ( + {PACKAGES.map((pkg) => ( diff --git a/packages/website/src/util/packages.ts b/packages/website/src/util/packages.ts new file mode 100644 index 000000000..8b02eb866 --- /dev/null +++ b/packages/website/src/util/packages.ts @@ -0,0 +1 @@ +export const PACKAGES = ['builders', 'collection', 'proxy', 'rest', 'voice', 'ws']; diff --git a/packages/website/src/util/parse.server.ts b/packages/website/src/util/parse.server.ts index 077efe63f..5e940fbea 100644 --- a/packages/website/src/util/parse.server.ts +++ b/packages/website/src/util/parse.server.ts @@ -25,6 +25,7 @@ export function findPackage(model: ApiModel, name: string): ApiPackage | undefin export function generatePath(items: readonly ApiItem[], version: string) { let path = '/docs/packages'; + for (const item of items) { switch (item.kind) { case ApiItemKind.Model: