diff --git a/packages/scripts/src/generateIndex.ts b/packages/scripts/src/generateIndex.ts index 540880081e4b..bb5d40dfa076 100644 --- a/packages/scripts/src/generateIndex.ts +++ b/packages/scripts/src/generateIndex.ts @@ -12,6 +12,7 @@ import { import { generatePath } from '@discordjs/api-extractor-utils'; import { DocNodeKind } from '@microsoft/tsdoc'; import type { DocLinkTag, DocCodeSpan, DocNode, DocParagraph, DocPlainText } from '@microsoft/tsdoc'; +import { resolveMembers } from './generateSplitDocumentation.js'; import { PACKAGES, fetchVersionDocs, fetchVersions } from './shared.js'; export interface MemberJSON { @@ -117,25 +118,21 @@ export enum SearchOrderType { export function visitNodes(item: ApiItem, tag: string) { const members: (MemberJSON & { id: number })[] = []; - for (const member of item.members) { - if (!(member instanceof ApiDeclaredItem)) { - continue; - } - + for (const { item: member, inherited } of ApiItemContainerMixin.isBaseClassOf(item) + ? resolveMembers(item, (child): child is ApiDeclaredItem => child instanceof ApiDeclaredItem) + : []) { if (member.kind === ApiItemKind.Constructor || member.kind === ApiItemKind.Namespace) { continue; } - if (ApiItemContainerMixin.isBaseClassOf(member)) { - members.push(...visitNodes(member, tag)); - } + members.push(...visitNodes(member, tag)); members.push({ id: idx++, name: member.displayName, kind: member.kind, summary: tryResolveSummaryText(member) ?? '', - path: generatePath(member.getHierarchy(), tag), + path: generatePath(inherited ? [...item.getHierarchy(), member] : member.getHierarchy(), tag), type: SearchOrderType[member.kind as keyof typeof SearchOrderType], }); }