Skip to content

Commit

Permalink
fix(website): caching and revalidation
Browse files Browse the repository at this point in the history
  • Loading branch information
iCrawl committed Nov 11, 2023
1 parent cf49f40 commit 62e6573
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 18 deletions.
48 changes: 30 additions & 18 deletions apps/website/src/app/docAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,43 +17,55 @@ export const fetchVersions = cache(async (packageName: string): Promise<string[]
return ['main'];
}

const { rows } = await sql.execute('select version from documentation where name = ? order by version desc', [
packageName,
]);
try {
const { rows } = await sql.execute('select version from documentation where name = ? order by version desc', [
packageName,
]);

// @ts-expect-error: https://github.com/planetscale/database-js/issues/71
return rows.map((row) => row.version).slice(0, N_RECENT_VERSIONS);
// @ts-expect-error: https://github.com/planetscale/database-js/issues/71
return rows.map((row) => row.version).slice(0, N_RECENT_VERSIONS);
} catch {
return [];
}
});

export const fetchModelJSON = cache(async (packageName: string, version: string) => {
if (process.env.NEXT_PUBLIC_LOCAL_DEV) {
let res;

try {
res = await readFile(join(process.cwd(), '..', '..', 'packages', packageName, 'docs', 'docs.api.json'), 'utf8');
const res = await readFile(
join(process.cwd(), '..', '..', 'packages', packageName, 'docs', 'docs.api.json'),
'utf8',
);

return JSON.parse(res);
} catch {
console.log(res);
return null;
}
}

if (process.env.NEXT_PUBLIC_VERCEL_ENV === 'preview') {
try {
const { rows } = await sql.execute('select data from documentation where name = ? and version = ?', [
packageName,
'main',
]);

// @ts-expect-error: https://github.com/planetscale/database-js/issues/71
return rows[0]?.data ?? null;
} catch {
return null;
}
}

try {
const { rows } = await sql.execute('select data from documentation where name = ? and version = ?', [
packageName,
'main',
version,
]);

// @ts-expect-error: https://github.com/planetscale/database-js/issues/71
return rows[0]?.data ?? null;
} catch {
return null;
}

const { rows } = await sql.execute('select data from documentation where name = ? and version = ?', [
packageName,
version,
]);

// @ts-expect-error: https://github.com/planetscale/database-js/issues/71
return rows[0]?.data ?? null;
});
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ import { OVERLOAD_SEPARATOR } from '~/util/constants';
import { fetchMember } from '~/util/fetchMember';
import { findMember } from '~/util/model';

export const revalidate = 3_600;

export interface ItemRouteParams {
item: string;
package: string;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ import { addPackageToModel } from '~/util/addPackageToModel';
import { PACKAGES } from '~/util/constants';
import { Providers } from './providers';

export const revalidate = 3_600;

const Header = dynamic(async () => import('~/components/Header'));
const Footer = dynamic(async () => import('~/components/Footer'));

Expand Down
2 changes: 2 additions & 0 deletions apps/website/src/app/docs/packages/[package]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import { fetchVersions } from '~/app/docAPI';
import { buttonVariants } from '~/styles/Button';
import { PACKAGES } from '~/util/constants';

export const revalidate = 3_600;

export default async function Page({ params }: { params: { package: string } }) {
if (!PACKAGES.includes(params.package)) {
notFound();
Expand Down

0 comments on commit 62e6573

Please sign in to comment.