UNPKG

typedoc-better-json

Version:

Transforms typedoc's json output to a format that is better for creating custom documentation website

35 lines (29 loc) 786 B
import { TypeParameter, TokenInfo, TypeInfo } from "../types"; export function getTypeParamSignature( typeParameters: TypeParameter[], ): TypeInfo { const tokens: TokenInfo[] = []; const collect = (typeInfo?: TypeInfo) => { if (typeInfo?.tokens) { tokens.push(...typeInfo.tokens); } }; const generic = typeParameters ? `<${typeParameters .map((t) => { collect(t.defaultType); collect(t.extendsType); const defaultVal = t.defaultType ? ` = ${t.defaultType.code}` : ""; return ( (t.extendsType ? `${t.name} extends ${t.extendsType.code}` : t.name) + defaultVal ); }) .join(", ")}>` : ""; return { code: generic, tokens, }; }