feat(website): Show constructor information (#8540)

This commit is contained in:
Suneet Tipirneni
2022-08-22 03:45:53 -04:00
committed by GitHub
parent dd44e8b6ec
commit e42fd16369
66 changed files with 689 additions and 625 deletions

View File

@@ -1,52 +1,6 @@
import {
ApiClass,
ApiDeclaredItem,
ApiEntryPoint,
ApiEnum,
ApiFunction,
ApiInterface,
ApiItem,
ApiItemKind,
ApiModel,
ApiTypeAlias,
ApiVariable,
} from '@microsoft/api-extractor-model';
import type { ApiEntryPoint, ApiModel } from '@microsoft/api-extractor-model';
import { findPackage } from './parse.server';
import { DocClass } from '../DocModel/DocClass';
import { DocEnum } from '../DocModel/DocEnum';
import { DocFunction } from '../DocModel/DocFunction';
import { DocInterface } from '../DocModel/DocInterface';
import { DocItem } from '../DocModel/DocItem';
import { DocTypeAlias } from '../DocModel/DocTypeAlias';
import { DocVariable } from '../DocModel/DocVariable';
export interface ReferenceData {
name: string;
path: string;
}
function createDocItem(model: ApiModel, member: ApiItem) {
if (!(member instanceof ApiDeclaredItem)) {
return undefined;
}
switch (member.kind) {
case ApiItemKind.Class:
return new DocClass(model, member as ApiClass);
case ApiItemKind.Function:
return new DocFunction(model, member as ApiFunction);
case ApiItemKind.Interface:
return new DocInterface(model, member as ApiInterface);
case ApiItemKind.TypeAlias:
return new DocTypeAlias(model, member as ApiTypeAlias);
case ApiItemKind.Variable:
return new DocVariable(model, member as ApiVariable);
case ApiItemKind.Enum:
return new DocEnum(model, member as ApiEnum);
default:
return new DocItem(model, member);
}
}
import { ApiNodeJSONEncoder } from '~/DocModel/ApiNodeJSONEncoder';
export function findMemberByKey(model: ApiModel, packageName: string, containerKey: string) {
const pkg = findPackage(model, packageName)!;
@@ -56,10 +10,14 @@ export function findMemberByKey(model: ApiModel, packageName: string, containerK
return undefined;
}
return createDocItem(model, member);
return ApiNodeJSONEncoder.encode(model, member);
}
export function findMember(model: ApiModel, packageName: string, memberName: string): DocItem | undefined {
export function findMember(
model: ApiModel,
packageName: string,
memberName: string,
): ReturnType<typeof ApiNodeJSONEncoder['encode']> | undefined {
const pkg = findPackage(model, packageName)!;
const member = (pkg.members[0] as ApiEntryPoint).findMembersByName(memberName)[0];
@@ -67,5 +25,5 @@ export function findMember(model: ApiModel, packageName: string, memberName: str
return undefined;
}
return createDocItem(model, member);
return ApiNodeJSONEncoder.encode(model, member);
}