import { ValidationError } from './validation/ValidationError'; import { ValidatorOptions } from './validation/ValidatorOptions'; import { ValidationSchema } from './validation-schema/ValidationSchema'; import { getMetadataStorage } from './metadata/MetadataStorage'; import { Validator } from './validation/Validator'; import { getFromContainer } from './container'; // ------------------------------------------------------------------------- // Export everything api users needs // ------------------------------------------------------------------------- export * from './container'; export * from './decorator/decorators'; export * from './decorator/ValidationOptions'; export * from './validation/ValidatorConstraintInterface'; export * from './validation/ValidationError'; export * from './validation/ValidatorOptions'; export * from './validation/ValidationArguments'; export * from './validation/ValidationTypes'; export * from './validation/Validator'; export * from './validation-schema/ValidationSchema'; export * from './register-decorator'; export * from './metadata/MetadataStorage'; // ------------------------------------------------------------------------- // Shortcut methods for api users // ------------------------------------------------------------------------- /** * Validates given object. */ export function validate(object: object, validatorOptions?: ValidatorOptions): Promise; /** * Validates given object by a given validation schema. */ export function validate( schemaName: string, object: object, validatorOptions?: ValidatorOptions ): Promise; /** * Validates given object by object's decorators or given validation schema. */ export function validate( schemaNameOrObject: object | string, objectOrValidationOptions?: object | ValidatorOptions, maybeValidatorOptions?: ValidatorOptions ): Promise { if (typeof schemaNameOrObject === 'string') { return getFromContainer(Validator).validate( schemaNameOrObject, objectOrValidationOptions as object, maybeValidatorOptions ); } else { return getFromContainer(Validator).validate(schemaNameOrObject, objectOrValidationOptions as ValidatorOptions); } } /** * Validates given object and reject on error. */ export function validateOrReject(object: object, validatorOptions?: ValidatorOptions): Promise; /** * Validates given object by a given validation schema and reject on error. */ export function validateOrReject( schemaName: string, object: object, validatorOptions?: ValidatorOptions ): Promise; /** * Validates given object by object's decorators or given validation schema and reject on error. */ export function validateOrReject( schemaNameOrObject: object | string, objectOrValidationOptions?: object | ValidatorOptions, maybeValidatorOptions?: ValidatorOptions ): Promise { if (typeof schemaNameOrObject === 'string') { return getFromContainer(Validator).validateOrReject( schemaNameOrObject, objectOrValidationOptions as object, maybeValidatorOptions ); } else { return getFromContainer(Validator).validateOrReject( schemaNameOrObject, objectOrValidationOptions as ValidatorOptions ); } } /** * Performs sync validation of the given object. * Note that this method completely ignores async validations. * If you want to properly perform validation you need to call validate method instead. */ export function validateSync(object: object, validatorOptions?: ValidatorOptions): ValidationError[]; /** * Validates given object by a given validation schema. * Note that this method completely ignores async validations. * If you want to properly perform validation you need to call validate method instead. */ export function validateSync( schemaName: string, object: object, validatorOptions?: ValidatorOptions ): ValidationError[]; /** * Validates given object by object's decorators or given validation schema. * Note that this method completely ignores async validations. * If you want to properly perform validation you need to call validate method instead. */ export function validateSync( schemaNameOrObject: object | string, objectOrValidationOptions?: object | ValidatorOptions, maybeValidatorOptions?: ValidatorOptions ): ValidationError[] { if (typeof schemaNameOrObject === 'string') { return getFromContainer(Validator).validateSync( schemaNameOrObject, objectOrValidationOptions as object, maybeValidatorOptions ); } else { return getFromContainer(Validator).validateSync(schemaNameOrObject, objectOrValidationOptions as ValidatorOptions); } } /** * Registers a new validation schema. */ export function registerSchema(schema: ValidationSchema): void { getMetadataStorage().addValidationSchema(schema); }