fix: add inherited properties to search index (#10257)

This commit is contained in:
Qjuh
2024-05-06 19:30:06 +02:00
committed by GitHub
parent 776880d06b
commit e673b3c129

View File

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