ci: deploy on vercel again

This commit is contained in:
iCrawl
2023-11-08 13:27:04 +01:00
parent 2bda883a0f
commit 4575e49ea1
13 changed files with 33 additions and 80 deletions

View File

@@ -1,6 +1,7 @@
import { readFile } from 'node:fs/promises';
import { join } from 'node:path';
import { connect } from '@planetscale/database';
import { cache } from 'react';
import { N_RECENT_VERSIONS } from '~/util/constants';
const sql = connect({
@@ -11,7 +12,7 @@ const sql = connect({
},
});
export async function fetchVersions(packageName: string): Promise<string[]> {
export const fetchVersions = cache(async (packageName: string) => {
if (process.env.NEXT_PUBLIC_LOCAL_DEV || process.env.NEXT_PUBLIC_VERCEL_ENV === 'preview') {
return ['main'];
}
@@ -22,9 +23,9 @@ export async function fetchVersions(packageName: string): Promise<string[]> {
// @ts-expect-error: https://github.com/planetscale/database-js/issues/71
return rows.map((row) => row.version).slice(0, N_RECENT_VERSIONS);
}
});
export async function fetchModelJSON(packageName: string, version: string): Promise<unknown | null> {
export const fetchModelJSON = cache(async (packageName: string, version: string) => {
if (process.env.NEXT_PUBLIC_LOCAL_DEV) {
let res;
@@ -55,4 +56,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 ?? null;
}
});

View File

@@ -26,10 +26,15 @@ import { Enum } from '~/components/model/enum/Enum';
import { Function } from '~/components/model/function/Function';
import { addPackageToModel } from '~/util/addPackageToModel';
import { OVERLOAD_SEPARATOR } from '~/util/constants';
import type { ItemRouteParams } from '~/util/fetchMember';
import { fetchMember } from '~/util/fetchMember';
import { findMember } from '~/util/model';
export interface ItemRouteParams {
item: string;
package: string;
version: string;
}
async function fetchHeadMember({ package: packageName, version, item }: ItemRouteParams) {
const modelJSON = await fetchModelJSON(packageName, version);
@@ -152,7 +157,7 @@ function Member({ member }: { readonly member?: ApiItem }) {
}
export default async function Page({ params }: { params: ItemRouteParams }) {
const member = await fetchMember(params);
const member = await fetchMember(params.package, params.version ?? 'main', params.item);
if (!member) {
notFound();

View File

@@ -25,7 +25,7 @@ export async function generateStaticParams() {
const params: VersionRouteParams[] = [];
await Promise.all(
PACKAGES.map(async (packageName) => {
PACKAGES.slice(1).map(async (packageName) => {
const versions = await fetchVersions(packageName);
params.push(...versions.map((version) => ({ package: packageName, version })));

View File

@@ -2,14 +2,15 @@ import { readFile } from 'node:fs/promises';
import { join } from 'node:path';
import type { SerializeOptions } from 'next-mdx-remote/dist/types';
import { MDXRemote } from 'next-mdx-remote/rsc';
import { cache } from 'react';
import rehypeSlug from 'rehype-slug';
import remarkGfm from 'remark-gfm';
import { SyntaxHighlighter } from '~/components/SyntaxHighlighter';
import type { VersionRouteParams } from './layout';
async function loadREADME(packageName: string) {
const loadREADME = cache(async (packageName: string) => {
return readFile(join(process.cwd(), 'src', 'assets', 'readme', packageName, 'home-README.md'), 'utf8');
}
});
const mdxOptions = {
mdxOptions: {