From cac3c077299838eeff37b288fd8cb1f2bb8b627d Mon Sep 17 00:00:00 2001 From: Suneet Tipirneni <77477100+suneettipirneni@users.noreply.github.com> Date: Fri, 14 Apr 2023 14:53:57 -0400 Subject: [PATCH] fix(website): link dapi-types to proper website (#9388) --- apps/website/src/components/ExcerptText.tsx | 19 ++++++++++++++++++- apps/website/src/util/constants.ts | 3 +++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/apps/website/src/components/ExcerptText.tsx b/apps/website/src/components/ExcerptText.tsx index e473580a709b..5ee6e714c9dc 100644 --- a/apps/website/src/components/ExcerptText.tsx +++ b/apps/website/src/components/ExcerptText.tsx @@ -2,6 +2,7 @@ import type { ApiModel, Excerpt } from '@microsoft/api-extractor-model'; import { ExcerptTokenKind } from '@microsoft/api-extractor-model'; import { ItemLink } from './ItemLink'; import { resolveItemURI } from './documentation/util'; +import { DISCORD_API_TYPES_DOCS_URL } from '~/util/constants'; export interface ExcerptTextProps { /** @@ -20,8 +21,24 @@ export interface ExcerptTextProps { export function ExcerptText({ model, excerpt }: ExcerptTextProps) { return ( <> - {excerpt.spannedTokens.map((token) => { + {excerpt.spannedTokens.map((token, idx) => { if (token.kind === ExcerptTokenKind.Reference) { + const source = token.canonicalReference?.source; + + if (source && 'packageName' in source && source.packageName === 'discord-api-types') { + const meaning = token.canonicalReference.symbol?.meaning; + const href = + meaning === 'type' + ? `${DISCORD_API_TYPES_DOCS_URL}#${token.text}` + : `${DISCORD_API_TYPES_DOCS_URL}/${meaning}/${token.text}`; + + return ( + + {token.text} + + ); + } + const item = model.resolveDeclarationReference(token.canonicalReference!, model).resolvedApiItem; if (!item) { diff --git a/apps/website/src/util/constants.ts b/apps/website/src/util/constants.ts index 32cfa97e5fe8..ce5341544ee9 100644 --- a/apps/website/src/util/constants.ts +++ b/apps/website/src/util/constants.ts @@ -38,3 +38,6 @@ client.on('interactionCreate', async (interaction) => { }); await client.login(TOKEN);`; + +export const DISCORD_API_TYPES_VERSION = 'v10'; +export const DISCORD_API_TYPES_DOCS_URL = `https://discord-api-types.dev/api/discord-api-types-${DISCORD_API_TYPES_VERSION}`;