jet-validators
Version:
A list common typescript validator-functions and some useful utilities to go with them.
75 lines (74 loc) • 11 kB
TypeScript
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 {};