import { Not } from '../../utils/types.js'; import { Nullable, Optional, TypeInterface, } from '../data-types/types/type-definitions.js'; /** * Returns true if the property is optional, otherwise false. */ export type IsPropertyReadOptional = T extends TypeInterface ? Config extends Optional ? true : Config extends Nullable ? true : false : false; /** * Returns true if the property is required, otherwise false. */ export type IsPropertyReadRequired = Not< IsPropertyReadOptional >; export type IsPropertyWriteOptional = T extends TypeInterface ? Config extends Optional ? true : Config extends Nullable ? true : Config extends { default: any } ? true : false : false; export type IsPropertyWriteRequired = Not< IsPropertyWriteOptional >;