UNPKG

ok-computer

Version:

'Functions all the way down' data validation for JavaScript and TypeScript.

24 lines (22 loc) 1.7 kB
declare type Parser = (value: any) => any; declare const trim: (value: string) => string; declare const trimEnd: (value: string) => string; declare const trimStart: (value: string) => string; declare const uppercase: (value: string) => string; declare const lowercase: (value: string) => string; declare const padStart: (padding: number) => (value: string) => string; declare const padEnd: (padding: number) => (value: string) => string; declare const split: (splitter: { [Symbol.split](string: string, limit?: number | undefined): string[]; }, limit?: number | undefined) => (value: string) => string[]; declare const nullWhen: <T>(nullValue: T) => (value: any) => T | null; declare const undefinedWhen: <T>(nullValue: T) => (value: any) => T | undefined; declare type ObjParserResult<Parsers extends Record<keyof Parsers, (value: any) => any>, Value extends Partial<Record<keyof Parsers, any>>> = { [P in keyof Parsers]: ReturnType<Parsers[P]> | (Value extends {} ? Value[P] extends {} ? Value[P] : undefined : undefined); }; interface ObjectOptions { readonly keepUnknown?: boolean; } declare const object: <Parsers extends Record<keyof Parsers, Parser>>(parsers: Parsers, { keepUnknown }?: ObjectOptions) => <Value extends unknown>(value: Value) => Value extends Partial<Record<keyof Parsers, any>> ? ObjParserResult<Parsers, Value> : Value; declare const array: <Parser_1 extends (value: any) => any>(parser: Parser_1) => <Value>(value: Value) => Value extends any[] ? (ReturnType<Parser_1> | Value[0])[] : Value; export { ObjParserResult, ObjectOptions, Parser, array, lowercase, nullWhen, object, padEnd, padStart, split, trim, trimEnd, trimStart, undefinedWhen, uppercase };