import Link from 'next/link';
import { BuiltinDocumentationLinks } from '@/util/builtinDocumentationLinks';
import { Scrollbars } from './OverlayScrollbars';
import { SyntaxHighlighter } from './SyntaxHighlighter';
export async function DocNode({ node, version }: { readonly node?: any; readonly version: string }) {
const createNode = (node: any, idx: number) => {
switch (node.kind) {
case 'PlainText':
return {node.text};
case 'LinkTag': {
if (node.resolvedPackage) {
return (
{node.text}
);
}
if (node.uri) {
return (
{`${node.text}${node.members ?? ''}`}
);
}
if (node.text in BuiltinDocumentationLinks) {
const href = BuiltinDocumentationLinks[node.text as keyof typeof BuiltinDocumentationLinks];
return (
{node.text}
);
}
return {node.text};
}
case 'CodeSpan':
return (
{node.text}
);
case 'FencedCode': {
const { language, text } = node;
return (
);
}
case 'SoftBreak':
return null;
default:
return null;
}
};
return node?.map(createNode) ?? null;
}