import { ValidationOptions } from "../ValidationOptions"; import { buildMessage, ValidateBy } from "./ValidateBy"; import { ValidationTypes } from "../../validation/ValidationTypes"; // isDefined is (yet) a special case export const IS_DEFINED = ValidationTypes.IS_DEFINED; /** * Checks if value is defined (!== undefined, !== null). */ export function isDefined(value: any): boolean { return value !== undefined && value !== null; } /** * Checks if value is defined (!== undefined, !== null). */ export function IsDefined(validationOptions?: ValidationOptions): PropertyDecorator { return ValidateBy( { name: IS_DEFINED, validator: { validate: (value): boolean => isDefined(value), defaultMessage: buildMessage( (eachPrefix) => eachPrefix + "$property should not be null or undefined", validationOptions ) } }, validationOptions ); }