UNPKG

@bshg/validation

Version:

Validation Library for TypeScript projects

47 lines (46 loc) 1.94 kB
import { ValidatorResult } from "../results"; import { ValidatorItem } from "./validator-item"; import { BatchValidatorResultInfo, ExtractNonPrimitiveKeys, NestedType, ValidatorConfig, ValidatorOptions, ValidatorResultInfo } from "../utils"; type ValidatorItemsType<T extends Record<string, any>> = { [K in keyof T]?: ValidatorItem<T[K], T>; }; type ValidatorStatus<T extends Record<string, any>> = { field?: Extract<ExtractNonPrimitiveKeys<T>, string>; valid?: boolean; message?: string; }; export declare class Validator<T extends Record<string, any>, TContext extends Record<string, any> = any> { #private; context?: TContext; onChangeEvent?: (obj: T) => void; status: ValidatorStatus<T>; config(config: ValidatorConfig<T, TContext>): this; get nested(): NestedType<T, TContext>; get items(): ValidatorItemsType<T>; options(value: ValidatorOptions): this; allGood(): boolean; applyAll(): void; applyAllAsync(): Promise<void>; reset(): void; init(getter: () => T): this; withContext(context: TContext): this; private generateErrorsAsObject; private generateErrorsAsArray; private generateErrors; validate(data?: T): boolean; validateAsync(data?: T): Promise<boolean>; validateInfo(data?: T): ValidatorResultInfo; validateInfoAsync(data?: T): Promise<ValidatorResultInfo>; validateThrow(data?: T): void; validateThrowAsync(data?: T): Promise<void>; batchValidate(...data: T[]): BatchValidatorResultInfo; batchValidateAsync(...data: T[]): Promise<BatchValidatorResultInfo>; batchValidateThrow(...data: T[]): void; batchValidateThrowAsync(...data: T[]): Promise<void>; import(results: ValidatorResult): void; onChange(event: (obj: T) => void): this; validateItem(key: keyof T): void; isItemValid(key: keyof T): boolean | undefined; itemMessage(key: keyof T): string | undefined; } export {};