From 79fbda3aac6d4f0f8bfb193e797d09cbe331d315 Mon Sep 17 00:00:00 2001 From: iCrawl Date: Sun, 3 Mar 2024 02:27:52 +0100 Subject: [PATCH] feat: local and preview detection --- .github/workflows/documentation.yml | 1 + apps/guide/package.json | 4 +- apps/website/package.json | 10 +- .../[version]/[item]/opengraph-image.tsx | 10 +- .../[packageName]/[version]/[item]/page.tsx | 21 +- .../[packageName]/[version]/layout.tsx | 31 +- .../packages/[packageName]/[version]/page.tsx | 2 +- apps/website/src/app/layout.tsx | 17 +- apps/website/src/components/Navigation.tsx | 9 +- apps/website/src/middleware.ts | 5 + apps/website/src/util/env.ts | 4 + apps/website/src/util/fetchDependencies.ts | 30 + apps/website/src/util/fetchLatestVersion.ts | 5 + apps/website/src/util/fetchNode.ts | 30 + apps/website/src/util/fetchSitemap.ts | 26 + apps/website/src/util/fetchVersions.ts | 5 + package.json | 2 +- packages/brokers/package.json | 2 +- packages/builders/package.json | 2 +- packages/collection/package.json | 2 +- packages/core/package.json | 2 +- packages/create-discord-bot/package.json | 2 +- packages/discord.js/package.json | 2 +- packages/docgen/package.json | 2 +- packages/formatters/package.json | 2 +- packages/next/package.json | 2 +- packages/proxy/package.json | 2 +- packages/rest/package.json | 2 +- packages/ui/package.json | 4 +- packages/util/package.json | 2 +- packages/voice/package.json | 6 +- packages/ws/package.json | 2 +- pnpm-lock.yaml | 1856 ++++++++--------- 33 files changed, 1069 insertions(+), 1035 deletions(-) create mode 100644 apps/website/src/util/env.ts create mode 100644 apps/website/src/util/fetchDependencies.ts create mode 100644 apps/website/src/util/fetchNode.ts create mode 100644 apps/website/src/util/fetchSitemap.ts diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index fee631a6c..9d55fdb1a 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -76,6 +76,7 @@ jobs: for PACKAGE in "${PACKAGES[@]}"; do cd "packages/${PACKAGE}" ../../main/packages/api-extractor/bin/api-extractor run --local --minify + ../../main/packages/scripts/bin/generateSplitDocumentation cd ../.. done diff --git a/apps/guide/package.json b/apps/guide/package.json index c58725a21..0aac3caf5 100644 --- a/apps/guide/package.json +++ b/apps/guide/package.json @@ -65,12 +65,12 @@ "sharp": "^0.33.2" }, "devDependencies": { - "@next/bundle-analyzer": "14.1.0", + "@next/bundle-analyzer": "14.1.1", "@testing-library/react": "^14.2.1", "@testing-library/user-event": "^14.5.2", "@types/html-escaper": "^3.0.2", "@types/node": "18.18.8", - "@types/react": "^18.2.60", + "@types/react": "^18.2.61", "@types/react-dom": "^18.2.19", "@unocss/eslint-plugin": "^0.58.5", "@unocss/postcss": "^0.58.5", diff --git a/apps/website/package.json b/apps/website/package.json index 3088c38ba..ee19c97e8 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -56,9 +56,9 @@ "cmdk": "^0.2.1", "geist": "^1.2.2", "jotai": "^2.7.0", - "lucide-react": "^0.343.0", + "lucide-react": "^0.344.0", "meilisearch": "^0.37.0", - "next": "14.1.1-canary.80", + "next": "14.1.2-canary.2", "next-mdx-remote": "^4.4.1", "next-themes": "^0.2.1", "overlayscrollbars": "^2.5.0", @@ -71,18 +71,18 @@ "vaul": "^0.9.0" }, "devDependencies": { - "@next/bundle-analyzer": "14.1.1-canary.80", + "@next/bundle-analyzer": "14.1.2-canary.2", "@react-aria/optimize-locales-plugin": "^1.0.2", "@shikijs/rehype": "1.1.7", "@tailwindcss/typography": "^0.5.10", "@testing-library/react": "^14.2.1", "@testing-library/user-event": "^14.5.2", "@types/node": "18.18.8", - "@types/react": "^18.2.60", + "@types/react": "^18.2.61", "@types/react-dom": "^18.2.19", "@vitejs/plugin-react": "^4.2.1", "@vitest/coverage-v8": "^1.3.1", - "autoprefixer": "^10.4.17", + "autoprefixer": "^10.4.18", "cpy-cli": "^5.0.0", "cross-env": "^7.0.3", "eslint": "^8.57.0", diff --git a/apps/website/src/app/docs/packages/[packageName]/[version]/[item]/opengraph-image.tsx b/apps/website/src/app/docs/packages/[packageName]/[version]/[item]/opengraph-image.tsx index c8c16e1f4..454ea4b58 100644 --- a/apps/website/src/app/docs/packages/[packageName]/[version]/[item]/opengraph-image.tsx +++ b/apps/website/src/app/docs/packages/[packageName]/[version]/[item]/opengraph-image.tsx @@ -1,5 +1,6 @@ /* eslint-disable react/no-unknown-property */ import { ImageResponse } from 'next/og'; +import { fetchNode } from '~/util/fetchNode'; import { resolveKind } from '~/util/resolveNodeKind'; export const runtime = 'edge'; @@ -16,14 +17,7 @@ export default async function Image({ }: { readonly params: { readonly item: string; readonly packageName: string; readonly version: string }; }) { - const normalizeItem = params.item.split(encodeURIComponent(':')).join('.').toLowerCase(); - - const isMainVersion = params.version === 'main'; - const fileContent = await fetch( - `${process.env.BLOB_STORAGE_URL}/rewrite/${params.packageName}/${params.version}.${normalizeItem}.api.json`, - { next: isMainVersion ? { revalidate: 0 } : { revalidate: 604_800 } }, - ); - const node = await fileContent.json(); + const node = await fetchNode({ item: params.item, packageName: params.packageName, version: params.version }); return new ImageResponse( ( diff --git a/apps/website/src/app/docs/packages/[packageName]/[version]/[item]/page.tsx b/apps/website/src/app/docs/packages/[packageName]/[version]/[item]/page.tsx index 1999b0fe3..4b31faaf7 100644 --- a/apps/website/src/app/docs/packages/[packageName]/[version]/[item]/page.tsx +++ b/apps/website/src/app/docs/packages/[packageName]/[version]/[item]/page.tsx @@ -1,8 +1,6 @@ -// import { readFile } from 'node:fs/promises'; -// import { join } from 'node:path'; -// import { inspect } from 'node:util'; import type { Metadata } from 'next'; import { DocItem } from '~/components/DocItem'; +import { fetchNode } from '~/util/fetchNode'; export async function generateMetadata({ params, @@ -25,22 +23,7 @@ export default async function Page({ }: { readonly params: { readonly item: string; readonly packageName: string; readonly version: string }; }) { - const normalizeItem = params.item.split(encodeURIComponent(':')).join('.').toLowerCase(); - - // const fileContent = await readFile( - // join(process.cwd(), `../../packages/${params.packageName}/docs/split/${params.version}.${normalizeItem}.api.json`), - // 'utf8', - // ); - // const node = JSON.parse(fileContent); - - const isMainVersion = params.version === 'main'; - const fileContent = await fetch( - `${process.env.BLOB_STORAGE_URL}/rewrite/${params.packageName}/${params.version}.${normalizeItem}.api.json`, - { next: isMainVersion ? { revalidate: 0 } : { revalidate: 604_800 } }, - ); - const node = await fileContent.json(); - - // console.log(inspect(node, { depth: 0 })); + const node = await fetchNode({ item: params.item, packageName: params.packageName, version: params.version }); return (
diff --git a/apps/website/src/app/docs/packages/[packageName]/[version]/layout.tsx b/apps/website/src/app/docs/packages/[packageName]/[version]/layout.tsx index 2f020d754..53200e66c 100644 --- a/apps/website/src/app/docs/packages/[packageName]/[version]/layout.tsx +++ b/apps/website/src/app/docs/packages/[packageName]/[version]/layout.tsx @@ -1,6 +1,3 @@ -// import { readFile } from 'node:fs/promises'; -// import { join } from 'node:path'; -// import { inspect } from 'node:util'; import type { Metadata } from 'next'; import dynamic from 'next/dynamic'; import type { PropsWithChildren } from 'react'; @@ -8,6 +5,8 @@ import { Navigation } from '~/components/Navigation'; import { OverlayScrollbarsComponent } from '~/components/OverlayScrollbars'; import { Drawer } from '~/components/ui/Drawer'; import { Footer } from '~/components/ui/Footer'; +import { ENV } from '~/util/env'; +import { fetchDependencies } from '~/util/fetchDependencies'; // eslint-disable-next-line promise/prefer-await-to-then const CmdK = dynamic(async () => import('~/components/ui/CmdK').then((mod) => mod.CmdK), { ssr: false }); @@ -29,30 +28,16 @@ export default async function Layout({ params, children, }: PropsWithChildren<{ readonly params: { readonly packageName: string; readonly version: string } }>) { - // const fileContent = await readFile( - // join(process.cwd(), `../../packages/${params.packageName}/docs/split/${params.version}.dependencies.api.json`), - // 'utf8', - // ); - // const dependencies = JSON.parse(fileContent); - - const isMainVersion = params.version === 'main'; - const fileContent = await fetch( - `${process.env.BLOB_STORAGE_URL}/rewrite/${params.packageName}/${params.version}.dependencies.api.json`, - { next: isMainVersion ? { revalidate: 0 } : { revalidate: 604_800 } }, - ); - const parsedDependencies = await fileContent.json(); - const dependencies = Object.entries(parsedDependencies) - .filter(([key]) => key.startsWith('@discordjs/') && !key.includes('api-extractor')) - .map(([key, value]) => `${key.replace('@discordjs/', '').replaceAll('.', '-')}-${value.replaceAll('.', '-')}`); - - // console.log(inspect(dependencies, { depth: 0 })); + const dependencies = await fetchDependencies({ packageName: params.packageName, version: params.version }); return ( // eslint-disable-next-line react/no-unknown-property -
-
+
+