From e673b3c129f288f9f271e0b991d16dc2901cdc8a Mon Sep 17 00:00:00 2001 From: Qjuh <76154676+Qjuh@users.noreply.github.com> Date: Mon, 6 May 2024 19:30:06 +0200 Subject: [PATCH] fix: add inherited properties to search index (#10257) --- packages/scripts/src/generateIndex.ts | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/packages/scripts/src/generateIndex.ts b/packages/scripts/src/generateIndex.ts index 540880081..bb5d40dfa 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], }); }