UNPKG

react-querybuilder

Version:

React Query Builder component for constructing queries and filters, with utilities for executing them in various database and evaluation contexts

20 lines (19 loc) 1.16 kB
type MAXIMUM_ALLOWED_NUMBER = 45; type MappedNumber< N extends number, Result extends Array<unknown> = [] > = Result["length"] extends N ? Result : MappedNumber<N, [...Result, Result["length"]]>; type NumberRange = MappedNumber<MAXIMUM_ALLOWED_NUMBER>[number]; type OddEnd = "1" | "3" | "5" | "7" | "9"; type IsOdd<T extends `${number}`> = T extends `${infer Int}${infer Rest}` ? Rest extends "" ? Int extends OddEnd ? true : false : Rest extends `${number}` ? IsOdd<Rest> : false : false; type Compare<Num extends number> = Num extends number ? IsOdd<`${Num}`> extends true ? Num : never : never; type OddRange = Compare<NumberRange>; export type OddRangeWithZero = OddRange | 0; export declare const isOddOrZero: (n: number) => n is OddRangeWithZero; type MAXIMUM_ALLOWED_BOUNDARY = 80; export type MappedTuple< Tuple extends Array<unknown>, Result extends Array<unknown> = [], Count extends ReadonlyArray<number> = [] > = Count["length"] extends MAXIMUM_ALLOWED_BOUNDARY ? Result : Tuple extends [] ? [] : Result extends [] ? MappedTuple<Tuple, Tuple, [...Count, 1]> : MappedTuple<Tuple, Result | [...Result, ...Tuple], [...Count, 1]>; export {};