dilswer
Version:
Blazingly fast data validation library with TypeScript integration.
19 lines (18 loc) • 881 B
TypeScript
import type { AnyType } from "../data-types/type-types";
import type { InferDType, ReWrap } from "../data-types/type-utils";
import { AggregateValidationError, ValidationError } from "./validation-error/validation-error";
type ValidationResults<T> = {
success: false;
error: ValidationError | AggregateValidationError;
} | {
success: true;
value: T;
};
type Validator<T> = (data: unknown) => data is T;
type ValidatorWithDetails<T> = (data: unknown) => ValidationResults<T>;
export declare function validator<DT extends AnyType>(dataType: DT): Validator<ReWrap<InferDType<DT>>>;
export declare function validator<DT extends AnyType>(dataType: DT, options: {
details: true;
}): ValidatorWithDetails<ReWrap<InferDType<DT>>>;
export declare function validateWith<DT extends AnyType>(dataType: DT, value: any): ValidationResults<ReWrap<InferDType<DT>>>;
export {};