mirror of
https://github.com/discordjs/discord.js.git
synced 2026-05-31 08:00:07 +00:00
* build: bump `@vladfrangu/async_event_emitter` * chore: bump again + fixes * build: bump types/node and some dev deps * build: bump discord-api-types again * style: remove unused eslint-ignore comment * build: sync dependencies and update templates * build: bump turbo * build: vercel + vitest * build: bump undici --------- Co-authored-by: Vlad Frangu <me@vladfrangu.dev>
67 lines
1.9 KiB
TypeScript
67 lines
1.9 KiB
TypeScript
import Link from 'next/link';
|
|
import { Fragment } from 'react';
|
|
import { BuiltinDocumentationLinks } from '~/util/builtinDocumentationLinks';
|
|
|
|
export async function ExcerptNode({ node, version }: { readonly node?: any; readonly version: string }) {
|
|
const createExcerpt = (excerpts: any) => {
|
|
const excerpt = Array.isArray(excerpts) ? excerpts : (excerpts.excerpts ?? [excerpts]);
|
|
|
|
return (
|
|
<span
|
|
className={
|
|
excerpts?.type === 'Extends' || excerpts?.type === 'Implements'
|
|
? 'after:content-[",_"] last-of-type:after:content-none'
|
|
: ''
|
|
}
|
|
>
|
|
{excerpt.map((excerpt: any, idx: number) => {
|
|
if (excerpt.resolvedItem) {
|
|
return (
|
|
<Link
|
|
key={`${excerpt.resolvedItem.displayName}-${idx}`}
|
|
className="text-blurple hover:text-blurple-500 dark:hover:text-blurple-300"
|
|
href={`/docs/packages/${excerpt.resolvedItem.packageName}/${excerpt.resolvedItem.version ?? version}/${excerpt.resolvedItem.uri}`}
|
|
>
|
|
{excerpt.text}
|
|
</Link>
|
|
);
|
|
}
|
|
|
|
if (excerpt.href) {
|
|
return (
|
|
<a
|
|
key={`${excerpt.text}-${idx}`}
|
|
className="text-blurple hover:text-blurple-500 dark:hover:text-blurple-300"
|
|
href={excerpt.href}
|
|
rel="external noreferrer noopener"
|
|
target="_blank"
|
|
>
|
|
{excerpt.text}
|
|
</a>
|
|
);
|
|
}
|
|
|
|
if (excerpt.text in BuiltinDocumentationLinks) {
|
|
const href = BuiltinDocumentationLinks[excerpt.text as keyof typeof BuiltinDocumentationLinks];
|
|
return (
|
|
<a
|
|
key={`${excerpt.text}-${idx}`}
|
|
className="text-blurple hover:text-blurple-500 dark:hover:text-blurple-300"
|
|
href={href}
|
|
rel="external noreferrer noopener"
|
|
target="_blank"
|
|
>
|
|
{excerpt.text}
|
|
</a>
|
|
);
|
|
}
|
|
|
|
return <Fragment key={`${excerpt.text}-${idx}`}>{excerpt.text}</Fragment>;
|
|
})}
|
|
</span>
|
|
);
|
|
};
|
|
|
|
return node?.map(createExcerpt) ?? null;
|
|
}
|