diff --git a/apps/website/src/components/UnionMember.tsx b/apps/website/src/components/UnionMember.tsx index ce30e01ff6cc..161af976c21c 100644 --- a/apps/website/src/components/UnionMember.tsx +++ b/apps/website/src/components/UnionMember.tsx @@ -3,7 +3,7 @@ import { ExcerptNode } from './ExcerptNode'; export async function UnionMember({ node, version }: { readonly node: any; readonly version: string }) { return (
-

Union Members

+ {node.length > 1 ?

Union Members

: null} diff --git a/packages/scripts/src/generateSplitDocumentation.ts b/packages/scripts/src/generateSplitDocumentation.ts index 7f76fd92e491..703d24116edd 100644 --- a/packages/scripts/src/generateSplitDocumentation.ts +++ b/packages/scripts/src/generateSplitDocumentation.ts @@ -903,13 +903,13 @@ function itemInterface(item: ApiInterface) { }; } -function itemUnion(item: ApiTypeAlias) { +function itemUnion(item: Excerpt) { const union: ExcerptToken[][] = []; let currentUnionMember: ExcerptToken[] = []; let depth = 0; - for (const token of item.typeExcerpt.spannedTokens) { + for (const token of item.spannedTokens) { if (token.text.includes('?')) { - return [item.typeExcerpt.spannedTokens]; + return [item.spannedTokens]; } depth += token.text.split('<').length - token.text.split('>').length; @@ -948,7 +948,7 @@ function itemTypeAlias(item: ApiTypeAlias) { return { ...itemInfo(item), typeParameters: itemTypeParameters(item), - unionMembers: itemUnion(item).map((member) => + unionMembers: itemUnion(item.typeExcerpt).map((member) => itemExcerptText( new Excerpt(member, { startIndex: 0, endIndex: member.length }), item.getAssociatedPackage()!, @@ -961,6 +961,13 @@ function itemTypeAlias(item: ApiTypeAlias) { function itemVariable(item: ApiVariable) { return { ...itemInfo(item), + unionMembers: itemUnion(item.variableTypeExcerpt).map((member) => + itemExcerptText( + new Excerpt(member, { startIndex: 0, endIndex: member.length }), + item.getAssociatedPackage()!, + item.getHierarchy().find(ApiTypeParameterListMixin.isBaseClassOf), + ), + ), }; }