UNPKG

@kenniy/godeye-data-contracts

Version:

Enterprise-grade base repository architecture for GOD-EYE microservices with zero overhead and maximum code reuse

111 lines (110 loc) 3.31 kB
/** * Unified Validation System * Standardized validation decorators and pipes across all services */ import { PipeTransform, ArgumentMetadata } from '@nestjs/common'; import { ValidationOptions } from 'class-validator'; /** * Unified Validation Pipe configuration */ interface UnifiedValidationOptions { whitelist?: boolean; forbidNonWhitelisted?: boolean; transform?: boolean; } /** * Unified Validation Pipe * Replaces separate validation pipes with single, configurable pipe */ export declare class ValidationPipe implements PipeTransform<any> { private readonly options; constructor(options?: UnifiedValidationOptions); transform(value: any, { metatype }: ArgumentMetadata): Promise<any>; private toValidate; private buildErrorMessage; } /** * ID Validation Decorator * Replaces @IsUUID() for TypeORM and @IsValidObjectId() for Mongoose */ export declare function IsValidId(options?: ValidationOptions): (object: Object, propertyName: string) => void; /** * Required Email Validation Decorator * Works with both simple email validation and complex business rules */ export declare function IsRequiredEmail(options?: ValidationOptions): (object: Object, propertyName: string) => void; /** * Optional Email Validation Decorator */ export declare function IsOptionalEmail(options?: ValidationOptions): (object: Object, propertyName: string) => void; /** * Phone Number Validation Decorator * Supports multiple country formats */ export declare function IsPhoneNumber(countries?: string | string[], options?: ValidationOptions): (object: Object, propertyName: string) => void; /** * Transform to Lowercase Decorator */ export declare function ToLowerCase(): PropertyDecorator; /** * Trim Whitespace Decorator */ export declare function Trim(): PropertyDecorator; /** * Transform Date Decorator */ export declare function TransformDate(): PropertyDecorator; /** * Transform Array Decorator */ export declare function TransformArray(options?: { separator?: string; }): PropertyDecorator; /** * Pagination Validation Decorator */ export declare function IsValidPagination(options?: ValidationOptions): (object: Object, propertyName: string) => void; /** * Search Validation Decorator */ export declare function IsValidSearch(options?: ValidationOptions): (object: Object, propertyName: string) => void; /** * Entity Validation Decorator */ export declare function IsValidEntity(entity_type: string, options?: ValidationOptions): (object: Object, propertyName: string) => void; /** * Standard DTOs with validation */ export declare class PaginationDto { page?: number; limit?: number; } export declare class SearchDto { search?: string; search_fields?: string[]; } export declare class QueryDto extends PaginationDto { search?: string; sort?: Record<string, 'ASC' | 'DESC' | 1 | -1>; } /** * Validation utilities */ export declare class ValidationUtils { /** * Validate ID format */ static isValidId(id: string): boolean; /** * Validate email format */ static isValidEmail(email: string): boolean; /** * Validate pagination parameters */ static validatePagination(page?: number, limit?: number): { page: number; limit: number; }; } export {};