@typeofweb/schema
Version:
`@typeofweb/schema` is a lightweight and extensible library for data validation with full TypeScript support!
3 lines • 3.84 kB
TypeScript
import type { Primitives, SomeSchema } from '../types';
export declare const oneOf: <U extends readonly (SomeSchema<any> | Primitives)[]>(validatorsOrLiterals: readonly [...U]) => <S extends SomeSchema<unknown>>(schema?: S | undefined) => SomeSchema<import("../types").Pretty<import("../types").If<true, unknown extends { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number] ? false : { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number] extends never ? false : readonly unknown[] extends { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number] ? false : true, { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number], never>> | import("../types").Pretty<import("../types").If<true, unknown extends { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number] ? false : { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number] extends never ? false : {} extends { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number] ? true : true, S["__type"] extends readonly (infer TypeOfSchemaElement)[] ? { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number] extends readonly [...infer _] ? { readonly [Index_1 in keyof { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number]]: TypeOfSchemaElement; } : { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number] : { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number], never>> | import("../types").Pretty<import("../types").If<false, unknown extends { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number] ? false : { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number] extends never ? false : readonly unknown[] extends { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number] ? false : true, S["__type"], never>> | import("../types").Pretty<import("../types").If<false, (unknown extends { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number] ? false : { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number] extends never ? false : readonly unknown[] extends { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number] ? false : true) | (unknown extends { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number] ? false : { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number] extends never ? false : {} extends { readonly [Index in keyof U]: U[Index] extends SomeSchema<any> ? import("../types").Pretty<U[Index]["__type"]> : U[Index]; }[number] ? true : true), S["__type"], never>>>;
//# sourceMappingURL=oneOf.d.ts.map