typescript-checker
Version:
Powerful data validation library enabling type safety
47 lines (46 loc) • 3.62 kB
TypeScript
import { Checker, Check, KeysSchema, ItemsSchema } from "./core";
export declare const TypeUndefined: Checker<unknown, undefined>;
export declare const TypeNull: Checker<unknown, null>;
export declare const TypeString: Checker<unknown, string>;
export declare const TypeBoolean: Checker<unknown, boolean>;
export declare const TypeNumber: Checker<unknown, number>;
export declare const TypeUnknown: Checker<unknown, unknown>;
export declare const TypeFunction: Checker<unknown, Function>;
export declare const TypeObject: Checker<unknown, object>;
export declare const TypeArray: (value: unknown) => Check<unknown[]>;
export declare const TypeEnum: <T>(_enum: T) => Checker<unknown, T[keyof T]>;
export declare const TypeEnumString: <T>(_enum: T) => Checker<unknown, T[keyof T]>;
export declare const TypeParseInt: Checker<unknown, string>;
export declare const TypeParseFloat: Checker<unknown, string>;
export declare const TypeParseBoolean: Checker<unknown, string>;
export declare const TypeMatches: (name: string, regexp: RegExp) => Checker<string, string>;
export declare const TypeMatchesNot: (name: string, regexp: RegExp) => Checker<string, string>;
export declare const ConvertJSON: Checker<string, unknown>;
export declare const ConvertParseInt: Checker<unknown, number>;
export declare const ConvertParseFloat: Checker<unknown, number>;
export declare const ConvertParseBoolean: Checker<unknown, boolean>;
export declare const Record: <K extends string, T>(checkKey: Checker<string, K>, checkItem: Checker<unknown, T>) => Checker<unknown, Record<K, T>>;
export declare const RecordPartial: <K extends string, T>(checkKey: Checker<string, K>, checkItem: Checker<unknown, T>) => Checker<unknown, Partial<Record<K, T>>>;
export declare const TypeCheck: <U, T extends U>(check: (value: U) => value is T, type?: string) => (value: U) => Check<T>;
export declare const checkInstanceOf: <T>(constructor: {
new (...args: any): T;
name: string;
}) => (value: unknown) => Check<T>;
export declare const Keys: (<T>(schema: { readonly [key in keyof Required<T>]: Checker<unknown, Required<T>[key]>; }) => Checker<unknown, T>) & (<T_1, O extends keyof T_1>(schema: { readonly [key_1 in keyof Required<T_1>]: Checker<unknown, Required<T_1>[key_1]>; }, optional: Iterable<O> | readonly O[]) => Checker<unknown, Omit<T_1, O> & Partial<Pick<T_1, O>>>);
export declare const Keys1: <T>(schema: { readonly [key in keyof Required<T>]: Checker<unknown, Required<T>[key]>; }) => Checker<unknown, T>;
export declare const Keys2: <T_1, O extends keyof T_1>(schema: { readonly [key_1 in keyof Required<T_1>]: Checker<unknown, Required<T_1>[key_1]>; }, optional: Iterable<O> | readonly O[]) => Checker<unknown, Omit<T_1, O> & Partial<Pick<T_1, O>>>;
export declare const Items: <T>(schema: ItemsSchema<T, unknown>) => Checker<unknown, T[]>;
export declare const parsesAs: <T = never>(check: Checker<T, unknown>) => Checker<T, T>;
export declare const ConvertDate: Checker<unknown, Date>;
export declare const TypeParseDate: Checker<unknown, string>;
export declare const Transform: <T, R>(transformFn: (value: T) => R) => Checker<T, R>;
export declare const HasKeys: <T>(schema: { readonly [key in keyof Required<T>]: Checker<unknown, Required<T>[key]>; }) => Checker<unknown, T>;
declare type CheckPair = {
<T1, T2>(firstChecker: Checker<unknown, T1>, secondChecker: Checker<unknown, T2>): Checker<unknown, [T1, T2]>;
<T extends unknown[]>(UCheck: Checker<unknown, T[0]>, TCheck: Checker<unknown, T[1]>): Checker<unknown, [
T[0],
T[1]
]>;
};
export declare const checkPair: CheckPair;
export {};