diff --git a/apps/website/src/components/documentation/section/UnionMembersSection.tsx b/apps/website/src/components/documentation/section/UnionMembersSection.tsx index 7daa29901658..2a736c3de0a5 100644 --- a/apps/website/src/components/documentation/section/UnionMembersSection.tsx +++ b/apps/website/src/components/documentation/section/UnionMembersSection.tsx @@ -4,7 +4,7 @@ import { useMemo } from 'react'; import { ExcerptText } from '~/components/ExcerptText'; import { DocumentationSection } from './DocumentationSection'; -export type UnionMember = ExcerptToken[]; +export type UnionMember = readonly ExcerptToken[]; export function UnionMembersSection({ item, diff --git a/apps/website/src/components/documentation/tsdoc/TSDoc.tsx b/apps/website/src/components/documentation/tsdoc/TSDoc.tsx index f09e370e62a2..589c11184155 100644 --- a/apps/website/src/components/documentation/tsdoc/TSDoc.tsx +++ b/apps/website/src/components/documentation/tsdoc/TSDoc.tsx @@ -25,9 +25,9 @@ export function TSDoc({ item, tsdoc }: { readonly item: ApiItem; readonly tsdoc: case DocNodeKind.Section: case DocNodeKind.Paragraph: return ( - +
{(tsdoc as DocNodeContainer).nodes.map((node, idx) => createNode(node, idx))} - +
); case DocNodeKind.SoftBreak: return ; diff --git a/apps/website/src/components/model/TypeAlias.tsx b/apps/website/src/components/model/TypeAlias.tsx index 02d6d3882f9d..d15f861b4a52 100644 --- a/apps/website/src/components/model/TypeAlias.tsx +++ b/apps/website/src/components/model/TypeAlias.tsx @@ -13,16 +13,10 @@ export function TypeAlias({ item }: { readonly item: ApiTypeAlias }) { let depth = 0; for (const token of item.typeExcerpt.spannedTokens) { if (token.text.includes('?')) { - return []; + return [item.typeExcerpt.spannedTokens]; } - if (token.text.includes('<')) { - depth++; - } - - if (token.text.includes('>')) { - depth--; - } + depth += token.text.split('<').length - token.text.split('>').length; if (token.text.trim() === '|' && depth === 0) { if (currentUnionMember.length) { @@ -47,7 +41,7 @@ export function TypeAlias({ item }: { readonly item: ApiTypeAlias }) { } } - if (currentUnionMember.length && union.length) { + if (currentUnionMember.length) { union.push(currentUnionMember); } diff --git a/packages/api-extractor/src/generators/ApiModelGenerator.ts b/packages/api-extractor/src/generators/ApiModelGenerator.ts index e343ba8fc51e..551a3f630be7 100644 --- a/packages/api-extractor/src/generators/ApiModelGenerator.ts +++ b/packages/api-extractor/src/generators/ApiModelGenerator.ts @@ -1690,20 +1690,22 @@ export class ApiModelGenerator { } private _fixLinkTags(input?: string): string | undefined { - return input?.replaceAll(linkRegEx, (_match, _p1, _p2, _p3, _p4, _p5, _offset, _string, groups) => { - let target = groups.class ?? groups.url; - const external = this._jsDocJson?.externals.find((external) => groups.class && external.name === groups.class); - const match = /discord-api-types-(?[^#]*?)(?:#|\/(?[^#/]*)\/)(?[^/}]*)}$/.exec( - external?.see?.[0] ?? '', - ); - if (match) { - target = `discord-api-types#(${match.groups!.name}:${ - /^v\d+$/.test(match.groups!.type!) ? match.groups!.kind : 'type' - })`; - } + return input + ?.replaceAll(linkRegEx, (_match, _p1, _p2, _p3, _p4, _p5, _offset, _string, groups) => { + let target = groups.class ?? groups.url; + const external = this._jsDocJson?.externals.find((external) => groups.class && external.name === groups.class); + const match = /discord-api-types-(?[^#]*?)(?:#|\/(?[^#/]*)\/)(?[^/}]*)}$/.exec( + external?.see?.[0] ?? '', + ); + if (match) { + target = `discord-api-types#(${match.groups!.name}:${ + /^v\d+$/.test(match.groups!.type!) ? match.groups!.kind : 'type' + })`; + } - return `{@link ${target}${groups.prop ? `.${groups.prop}` : ''}${groups.name ? ` |${groups.name}` : ''}}`; - }); + return `{@link ${target}${groups.prop ? `.${groups.prop}` : ''}${groups.name ? ` |${groups.name}` : ''}}`; + }) + .replaceAll('* ', '\n * * '); } private _mapVarType(typey: DocgenVarTypeJson): IExcerptToken[] {