@tanstack/react-query
Version:
Hooks for managing, caching and syncing asynchronous and remote data in React
102 lines (99 loc) • 2.17 kB
text/typescript
import {
QueryObserver,
InfiniteQueryObserver,
QueryFunction,
QueryKey,
parseQueryArgs,
} from '@tanstack/query-core'
import { UseInfiniteQueryOptions, UseInfiniteQueryResult } from './types'
import { useBaseQuery } from './useBaseQuery'
// HOOK
export function useInfiniteQuery<
TQueryFnData = unknown,
TError = unknown,
TData = TQueryFnData,
TQueryKey extends QueryKey = QueryKey,
>(
options: UseInfiniteQueryOptions<
TQueryFnData,
TError,
TData,
TQueryFnData,
TQueryKey
>,
): UseInfiniteQueryResult<TData, TError>
export function useInfiniteQuery<
TQueryFnData = unknown,
TError = unknown,
TData = TQueryFnData,
TQueryKey extends QueryKey = QueryKey,
>(
queryKey: TQueryKey,
options?: Omit<
UseInfiniteQueryOptions<
TQueryFnData,
TError,
TData,
TQueryFnData,
TQueryKey
>,
'queryKey'
>,
): UseInfiniteQueryResult<TData, TError>
export function useInfiniteQuery<
TQueryFnData = unknown,
TError = unknown,
TData = TQueryFnData,
TQueryKey extends QueryKey = QueryKey,
>(
queryKey: TQueryKey,
queryFn: QueryFunction<TQueryFnData, TQueryKey>,
options?: Omit<
UseInfiniteQueryOptions<
TQueryFnData,
TError,
TData,
TQueryFnData,
TQueryKey
>,
'queryKey' | 'queryFn'
>,
): UseInfiniteQueryResult<TData, TError>
export function useInfiniteQuery<
TQueryFnData,
TError,
TData = TQueryFnData,
TQueryKey extends QueryKey = QueryKey,
>(
arg1:
| TQueryKey
| UseInfiniteQueryOptions<
TQueryFnData,
TError,
TData,
TQueryFnData,
TQueryKey
>,
arg2?:
| QueryFunction<TQueryFnData, TQueryKey>
| UseInfiniteQueryOptions<
TQueryFnData,
TError,
TData,
TQueryFnData,
TQueryKey
>,
arg3?: UseInfiniteQueryOptions<
TQueryFnData,
TError,
TData,
TQueryFnData,
TQueryKey
>,
): UseInfiniteQueryResult<TData, TError> {
const options = parseQueryArgs(arg1, arg2, arg3)
return useBaseQuery(
options,
InfiniteQueryObserver as typeof QueryObserver,
) as UseInfiniteQueryResult<TData, TError>
}