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;
}