import { Lookup } from '@nrwl/nx-dev/data-access-packages'; import { JsonSchema } from '@nrwl/nx-dev/models-package'; import { renderMarkdown } from '@nrwl/nx-dev/ui-markdoc'; import { getParameterMetadata } from './parameter-metadata'; import { getEnum } from './types/get-enum'; import { Type } from './types/type'; import { Heading3 } from './ui/headings'; export const ParameterView = (props: { key: string; name: string; alias: string; description: string; required: boolean; deprecated: boolean; schema: JsonSchema | undefined; reference: string; lookup: Lookup; }) => (
{props.alias && ( {props.alias} )} {props.required && ( Required )} {props.deprecated && ( Deprecated )} {((props.schema as any)['hidden'] as boolean) && ( Hidden )}
{props.schema && } {props.schema && ( )}
{ renderMarkdown(props.description, { filePath: '', }).node }
{props.deprecated && typeof (props.schema as any)['x-deprecated'] === 'string' ? (
{ renderMarkdown(String((props.schema as any)['x-deprecated']), { filePath: '', }).node }
) : null}
); function ParameterMetadata({ schema }: { schema: JsonSchema }) { const data = getParameterMetadata(schema); return !!data.length ? (
{data.map((i) => ( {i.name}: {i.value} ))}
) : null; } function ParameterEnums({ schema, lookup, }: { schema: JsonSchema; lookup: Lookup; }) { const potentialEnums = (getEnum(schema, lookup) as string[]) ?? []; return !!potentialEnums.length ? (
Accepted values:{' '} {potentialEnums.map((e, i) => ( {JSON.stringify(e).replace(/"/g, '')} {potentialEnums.length === i + 1 ? null : ', '} ))}
) : null; }