type QueriesResults<T, TResults, TDepth> =
TDepth['length'] extends MAXIMUM_DEPTH
? QueryObserverResult[]
: T extends []
? []
: T extends [infer Head]
? [...TResults, GetCreateQueryResult<Head>]
: T extends [infer Head, ...infer Tails]
? QueriesResults<
[...Tails],
[...TResults, GetCreateQueryResult<Head>],
[...TDepth, 1]
>
: { [K in keyof T]: GetCreateQueryResult<T[K]> }
type QueriesResults<T, TResults, TDepth> =
TDepth['length'] extends MAXIMUM_DEPTH
? QueryObserverResult[]
: T extends []
? []
: T extends [infer Head]
? [...TResults, GetCreateQueryResult<Head>]
: T extends [infer Head, ...infer Tails]
? QueriesResults<
[...Tails],
[...TResults, GetCreateQueryResult<Head>],
[...TDepth, 1]
>
: { [K in keyof T]: GetCreateQueryResult<T[K]> }
QueriesResults reducer recursively maps type param to results
• T extends any[]
• TResults extends any[] = []
• TDepth extends ReadonlyArray<number> = []