type QueriesOptions<T, TResults, TDepth> =
TDepth['length'] extends MAXIMUM_DEPTH
? QueryObserverOptionsForCreateQueries[]
: T extends []
? []
: T extends [infer Head]
? [...TResults, GetQueryObserverOptionsForCreateQueries<Head>]
: T extends [infer Head, ...infer Tails]
? QueriesOptions<
[...Tails],
[...TResults, GetQueryObserverOptionsForCreateQueries<Head>],
[...TDepth, 1]
>
: ReadonlyArray<unknown> extends T
? T
: T extends QueryObserverOptionsForCreateQueries<
infer TQueryFnData,
infer TError,
infer TData,
infer TQueryKey
>[]
? QueryObserverOptionsForCreateQueries<
TQueryFnData,
TError,
TData,
TQueryKey
>[]
: QueryObserverOptionsForCreateQueries[]
type QueriesOptions<T, TResults, TDepth> =
TDepth['length'] extends MAXIMUM_DEPTH
? QueryObserverOptionsForCreateQueries[]
: T extends []
? []
: T extends [infer Head]
? [...TResults, GetQueryObserverOptionsForCreateQueries<Head>]
: T extends [infer Head, ...infer Tails]
? QueriesOptions<
[...Tails],
[...TResults, GetQueryObserverOptionsForCreateQueries<Head>],
[...TDepth, 1]
>
: ReadonlyArray<unknown> extends T
? T
: T extends QueryObserverOptionsForCreateQueries<
infer TQueryFnData,
infer TError,
infer TData,
infer TQueryKey
>[]
? QueryObserverOptionsForCreateQueries<
TQueryFnData,
TError,
TData,
TQueryKey
>[]
: QueryObserverOptionsForCreateQueries[]
QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param
• T extends any[]
• TResults extends any[] = []
• TDepth extends ReadonlyArray<number> = []