import React from 'react'; import type { JSONOutput } from 'typedoc'; import { TokenPunctuation, TokenPrimitive } from './tokens'; import Indent from './Indent'; import renderType from './renderType'; import renderSignatureParams from './renderSignatureParams'; import Params from './Params'; import renderTypeParameters from './renderTypeParameters'; export default function renderFunctionSignature( signature: JSONOutput.SignatureReflection, params: Params ) { if (!signature.type) { console.warn('Did not render signature', signature); } const shouldBreak = signature.parameters?.length > 0; return ( <> {signature.typeParameter && renderTypeParameters(signature.typeParameter, params)} ( {shouldBreak &&
} {renderSignatureParams(signature, shouldBreak, params.withIndent())} {shouldBreak &&
} {shouldBreak && } ){' '} {': '}{' '} {signature.type ? ( renderType(signature.type, params) ) : ( void )} ); }