import {isValidElement} from 'react'; interface Props { name: string; value: unknown; } export default function JSXProperty({name, value}: Props) { if (name === 'children') { return {`{children}`}; } if (value === null || value === undefined) { return {`${name}={${value}}`}; } if (value === true) { return {name}; } if (value === false) { return {`${name}={${value}}`}; } if (value === Number || value === Boolean || value === Function) { // @ts-expect-error return {`${name}={${value.name}}`}; } if (typeof value === 'string') { return {`${name}=${JSON.stringify(value)}`}; } if (typeof value === 'number') { return {`${name}={${value}}`}; } if (typeof value === 'function') { return ( {`${name}={${value.name || 'Function'}}`} ); } if (isValidElement(value)) { return {`${name}=${value}`}; } return {`${name}={${JSON.stringify(value)}}`}; }