diff --git a/apps/website/src/app/docAPI.ts b/apps/website/src/app/docAPI.ts index 5094bc357..cbba31add 100644 --- a/apps/website/src/app/docAPI.ts +++ b/apps/website/src/app/docAPI.ts @@ -1,6 +1,7 @@ import { readFile } from 'node:fs/promises'; import { join } from 'node:path'; import { connect } from '@planetscale/database'; +import { cache } from 'react'; const sql = connect({ url: process.env.DATABASE_URL! }); @@ -12,7 +13,7 @@ export async function fetchVersions(packageName: string): Promise { return response.json(); } -export async function fetchModelJSON(packageName: string, version: string): Promise { +export const fetchModelJSON = cache(async (packageName: string, version: string): Promise => { if (process.env.NEXT_PUBLIC_LOCAL_DEV) { const res = await readFile( join(process.cwd(), '..', '..', 'packages', packageName, 'docs', 'docs.api.json'), @@ -34,4 +35,4 @@ export async function fetchModelJSON(packageName: string, version: string): Prom // @ts-expect-error: https://github.com/planetscale/database-js/issues/71 return rows[0].data; -} +}); diff --git a/apps/website/src/app/docs/packages/[package]/[version]/[item]/page.tsx b/apps/website/src/app/docs/packages/[package]/[version]/[item]/page.tsx index 3a89aa9d9..ba6836317 100644 --- a/apps/website/src/app/docs/packages/[package]/[version]/[item]/page.tsx +++ b/apps/website/src/app/docs/packages/[package]/[version]/[item]/page.tsx @@ -84,6 +84,9 @@ function resolveMemberSearchParams(packageName: string, member: ApiItem): URLSea return params; } +// eslint-disable-next-line unicorn/numeric-separators-style +export const revalidate = 3600; + export async function generateMetadata({ params }: { params: ItemRouteParams }) { const member = (await fetchHeadMember(params))!; const name = `discord.js${member?.displayName ? ` | ${member.displayName}` : ''}`; diff --git a/apps/website/src/app/docs/packages/[package]/[version]/layout.tsx b/apps/website/src/app/docs/packages/[package]/[version]/layout.tsx index 95bf21207..afa2d6b2d 100644 --- a/apps/website/src/app/docs/packages/[package]/[version]/layout.tsx +++ b/apps/website/src/app/docs/packages/[package]/[version]/layout.tsx @@ -20,6 +20,9 @@ export interface VersionRouteParams { version: string; } +// eslint-disable-next-line unicorn/numeric-separators-style +export const revalidate = 3600; + export async function generateStaticParams() { const params: VersionRouteParams[] = [];