UNPKG

jet-validators

Version:

A list common typescript validator-functions and some useful utilities to go with them.

75 lines (74 loc) 11 kB
import { ITransVldrFn } from './util-functions'; export type TParseOnError = (errors: IParseObjectError[]) => void; export interface IParseObjectError { info: string; prop?: string; value?: unknown; caught?: string; index?: number; children?: IParseObjectError[]; } export interface IParseVldrFn<T> { (arg: unknown, onError?: TParseOnError): arg is T; isTransFn?: true; } type TValidatorFn<T> = (arg: unknown) => arg is T; export type TSchema<T = unknown> = (unknown extends T ? IBasicSchema : TSchemaHelper<T>); export type TSchemaHelper<T> = Required<{ [K in keyof T]: (T[K] extends Record<string, unknown> ? IParseVldrFn<T[K]> | ITransVldrFn<T[K]> | TSchemaHelper<T[K]> : IParseVldrFn<T[K]> | ITransVldrFn<T[K]>); }>; interface IBasicSchema { [key: string]: ITransVldrFn<unknown> | IParseVldrFn<unknown> | IBasicSchema; } type TInferFromSchemaHelper<U> = { [K in keyof U]: (U[K] extends TValidatorFn<infer X> ? X : U[K] extends IBasicSchema ? TInferFromSchemaHelper<U[K]> : never); }; export declare const parseObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U>; export declare const parseOptionalObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U> | undefined; export declare const parseNullableObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U> | null; export declare const parseNullishObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U> | null | undefined; export declare const parseObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U>[]; export declare const parseOptionalObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U>[] | undefined; export declare const parseNullableObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U>[] | null; export declare const parseNullishObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U>[] | null | undefined; export declare const looseParseObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U>; export declare const looseParseOptionalObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U> | undefined; export declare const looseParseNullableObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U> | null; export declare const looseParseNullishObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U> | null | undefined; export declare const looseParseObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U>[]; export declare const looseParseOptionalObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U>[] | undefined; export declare const looseParseNullableObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U>[] | null; export declare const looseParseNullishObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U>[] | null | undefined; export declare const strictParseObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U>; export declare const strictParseOptionalObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U> | undefined; export declare const strictParseNullableObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U> | null; export declare const strictParseNullishObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U> | null | undefined; export declare const strictParseObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U>[]; export declare const strictParseOptionalObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U>[] | undefined; export declare const strictParseNullableObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U>[] | null; export declare const strictParseNullishObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => TInferFromSchemaHelper<U>[] | null | undefined; export declare const testObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U>; export declare const testOptionalObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U> | undefined; export declare const testNullableObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U> | null; export declare const testNullishObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U> | null | undefined; export declare const testObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U>[]; export declare const testOptionalObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U>[] | undefined; export declare const testNullableObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U>[] | null; export declare const testNullishObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U>[] | null | undefined; export declare const looseTestObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U>; export declare const looseTestOptionalObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U> | undefined; export declare const looseTestNullableObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U> | null; export declare const looseTestNullishObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U> | null | undefined; export declare const looseTestObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U>[]; export declare const looseTestOptionalObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U>[] | undefined; export declare const looseTestNullableObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U>[] | null; export declare const looseTestNullishObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U>[] | null | undefined; export declare const strictTestObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U>; export declare const strictTestOptionalObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U> | undefined; export declare const strictTestNullableObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U> | null; export declare const strictTestNullishObject: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U> | null | undefined; export declare const strictTestObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U>[]; export declare const strictTestOptionalObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U>[] | undefined; export declare const strictTestNullableObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U>[] | null; export declare const strictTestNullishObjectArray: <T, U extends TSchema<T> = TSchema<T>>(schema: U, onError?: TParseOnError) => (arg: unknown, onError?: TParseOnError) => arg is TInferFromSchemaHelper<U>[] | null | undefined; export {};