UNPKG

@intuitionrobotics/ts-common

Version:
36 lines 2.42 kB
import { CustomException } from "../core/exceptions.js"; import { type ArrayType, type AuditBy, type ObjectTS, type RangeTimestamp } from "../utils/types.js"; export type ValidatorTypeResolver<K> = K extends any[] ? Validator<K> : K extends object ? TypeValidator<K> | Validator<K> : Validator<K>; export type Validator<P> = undefined | ((path: string, p?: P) => void); export type TypeValidator<T extends ObjectTS> = { [P in keyof T]: ValidatorTypeResolver<T[P]>; }; export declare class ValidationException extends CustomException { path: string; input?: string; constructor(debugMessage: string, path: string, input?: any); } export declare const validateExists: (mandatory?: boolean) => Validator<any>; export declare const validateType: (type: "undefined" | "object" | "boolean" | "number" | "string" | "function" | "symbol" | "bigint", mandatory?: boolean) => Validator<any>; export declare const validateString: (mandatory?: boolean) => Validator<any>; export declare const validateNumber: (mandatory?: boolean) => Validator<any>; export declare const validateBoolean: (mandatory?: boolean) => Validator<any>; export declare const validateObjectValues: <V, T extends { [k: string]: V; } = { [k: string]: V; }>(validator: ValidatorTypeResolver<V>, mandatory?: boolean) => Validator<T>; export declare const validateArray: <T extends any[], I = ArrayType<T>>(validator: ValidatorTypeResolver<I>, mandatory?: boolean) => Validator<I[]>; export declare const validateRegexp: (regexp: RegExp, mandatory?: boolean) => Validator<string>; export declare const validateValue: (values: string[], mandatory?: boolean) => Validator<string>; export declare const validateRange: (ranges: [number, number][], mandatory?: boolean) => Validator<number>; export declare const validate: <T>(instance: T, _validator: ValidatorTypeResolver<T>, path?: string) => void; export declare const validateObject: <T>(__validator: TypeValidator<object>, instance: T, path?: string) => void; export declare const isTimestampValid: (time: number, range?: { min: number; max: number; }) => boolean; export declare const auditValidator: (range?: RangeTimestamp) => (_path: string, audit?: AuditBy) => void; export declare const timestampValidator: (range?: RangeTimestamp) => (_path: string, timestamp?: number) => void; export declare const validateEmail: Validator<string>; //# sourceMappingURL=validator.d.ts.map