|
1 | | -import { QueryClient, QueryObserver } from '@tanstack/query-core' |
| 1 | +import { |
| 2 | + type DefaultError, |
| 3 | + QueryClient, |
| 4 | + type QueryKey, |
| 5 | + QueryObserver, |
| 6 | +} from '@tanstack/query-core' |
2 | 7 | import { Getter, WritableAtom, atom } from 'jotai' |
3 | 8 | import { baseAtomWithQuery } from './baseAtomWithQuery' |
4 | 9 | import { queryClientAtom } from './queryClientAtom' |
5 | 10 | import { AtomWithQueryOptions, AtomWithQueryResult } from './types' |
6 | 11 |
|
7 | | -export function atomWithQueries<TCombinedResult>( |
| 12 | +export function atomWithQueries< |
| 13 | + TCombinedResult, |
| 14 | + TQueryFnData = unknown, |
| 15 | + TError = DefaultError, |
| 16 | + TData = TQueryFnData, |
| 17 | + TQueryKey extends QueryKey = QueryKey, |
| 18 | +>( |
8 | 19 | { |
9 | 20 | queries, |
10 | 21 | combine, |
11 | 22 | }: { |
12 | | - queries: Array<(get: Getter) => AtomWithQueryOptions> |
13 | | - combine: (results: AtomWithQueryResult[]) => TCombinedResult |
| 23 | + queries: Array< |
| 24 | + ( |
| 25 | + get: Getter |
| 26 | + ) => AtomWithQueryOptions<TQueryFnData, TError, TData, TQueryKey> |
| 27 | + > |
| 28 | + combine: ( |
| 29 | + results: AtomWithQueryResult<TQueryFnData, TError>[] |
| 30 | + ) => TCombinedResult |
14 | 31 | }, |
15 | 32 | getQueryClient?: (get: Getter) => QueryClient |
16 | 33 | ): WritableAtom<TCombinedResult, [], void> |
17 | | -export function atomWithQueries( |
| 34 | +export function atomWithQueries< |
| 35 | + TQueryFnData = unknown, |
| 36 | + TError = DefaultError, |
| 37 | + TData = TQueryFnData, |
| 38 | + TQueryKey extends QueryKey = QueryKey, |
| 39 | +>( |
18 | 40 | { |
19 | 41 | queries, |
20 | 42 | }: { |
21 | | - queries: Array<(get: Getter) => AtomWithQueryOptions> |
| 43 | + queries: Array< |
| 44 | + ( |
| 45 | + get: Getter |
| 46 | + ) => AtomWithQueryOptions<TQueryFnData, TError, TData, TQueryKey> |
| 47 | + > |
22 | 48 | }, |
23 | 49 | getQueryClient?: (get: Getter) => QueryClient |
24 | | -): Array<WritableAtom<AtomWithQueryResult, [], void>> |
| 50 | +): Array<WritableAtom<AtomWithQueryResult<TQueryFnData, TError>, [], void>> |
25 | 51 |
|
26 | 52 | export function atomWithQueries( |
27 | 53 | { |
|
0 commit comments