--- import { getEntry } from 'astro:content'; import { kebabCase } from 'es-toolkit/string'; import ContentWidth from '@/components/frames/ContentWidth.astro'; import H2 from '@/components/typography/H2Markdown.astro'; import H3 from '@/components/typography/H3Markdown.astro'; import H4 from '@/components/typography/H4Markdown.astro'; import P from '@/components/typography/P.astro'; import type { UtilReference } from '@/types/util-reference'; import { createUtilReferenceModel } from '@/utils/utilReferenceModel'; import InlineMarkdown from './InlineMarkdown.astro'; import UtilParamsTable from './UtilParamsTable.astro'; import UtilReturnTable from './UtilReturnTable.astro'; interface Props { util: string; slug?: string; } const { util, slug } = Astro.props; const entry = await getEntry('utilReference', slug ?? kebabCase(util)); const ref: UtilReference | null = entry?.data ?? null; if (!ref) return; const model = createUtilReferenceModel(util, ref); if (!model) return; ---

{model.heading.text}

{model.isMultiOverload ? ( model.overloads.map((overload) => { const paramsSection = overload.sections.find((s) => s.key === 'parameters'); const returnSection = overload.sections.find((s) => s.key === 'returnValue'); const hasParams = Object.keys(overload.data.parameters).length > 0; return ( <>

{overload.label ?? `Overload ${overload.index}`}

{overload.description && (

)} {paramsSection && hasParams && ( <>

{paramsSection.title}

)} {returnSection && ( <>

{returnSection.title}

)} ); }) ) : ( <> {model.sections.find((s) => s.key === 'parameters') && ( <>

Parameters

)} {model.sections.find((s) => s.key === 'returnValue') && ( <>

Return Value

)} )}