feat(website): add support for type parameter documentation (#8237)

This commit is contained in:
Suneet Tipirneni
2022-07-06 11:37:33 -04:00
committed by GitHub
parent 8198da5cd0
commit 34531c45e3
14 changed files with 145 additions and 12 deletions

View File

@@ -2,12 +2,13 @@ import { DocItem } from './DocItem';
import { DocMethodSignature } from './DocMethodSignature';
import { DocProperty } from './DocProperty';
import { ApiInterface, ApiItemKind, ApiMethodSignature, ApiModel, ApiPropertySignature } from '~/api-extractor.server';
import { type TokenDocumentation, genToken } from '~/util/parse.server';
import { type TokenDocumentation, genToken, type TypeParameterData, generateTypeParamData } from '~/util/parse.server';
export class DocInterface extends DocItem<ApiInterface> {
public readonly extendsTokens: TokenDocumentation[][] | null;
public readonly methods: DocMethodSignature[] = [];
public readonly properties: DocProperty[] = [];
public readonly typeParameters: TypeParameterData[] = [];
public constructor(model: ApiModel, item: ApiInterface) {
super(model, item);
@@ -16,6 +17,8 @@ export class DocInterface extends DocItem<ApiInterface> {
excerpt.excerpt.spannedTokens.map((token) => genToken(this.model, token)),
);
this.typeParameters = item.typeParameters.map((typeParam) => generateTypeParamData(this.model, typeParam));
for (const member of item.members) {
switch (member.kind) {
case ApiItemKind.MethodSignature:
@@ -36,6 +39,7 @@ export class DocInterface extends DocItem<ApiInterface> {
extendsTokens: this.extendsTokens,
methods: this.methods.map((method) => method.toJSON()),
properties: this.properties.map((prop) => prop.toJSON()),
typeParameters: this.typeParameters,
};
}
}