UNPKG

@tanstack/react-query

Version:

Hooks for managing, caching and syncing asynchronous and remote data in React

95 lines (88 loc) 2.07 kB
import type { DataTag } from '@tanstack/query-core' import type { InfiniteData } from '@tanstack/query-core' import type { UseInfiniteQueryOptions } from './types' import type { DefaultError, QueryKey } from '@tanstack/query-core' export type UndefinedInitialDataInfiniteOptions< TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > = UseInfiniteQueryOptions< TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam > & { initialData?: undefined } type NonUndefinedGuard<T> = T extends undefined ? never : T export type DefinedInitialDataInfiniteOptions< TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > = UseInfiniteQueryOptions< TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam > & { initialData: | NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>> | (() => NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>>) } export function infiniteQueryOptions< TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, >( options: UndefinedInitialDataInfiniteOptions< TQueryFnData, TError, TData, TQueryKey, TPageParam >, ): UndefinedInitialDataInfiniteOptions< TQueryFnData, TError, TData, TQueryKey, TPageParam > & { queryKey: DataTag<TQueryKey, TData> } export function infiniteQueryOptions< TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, >( options: DefinedInitialDataInfiniteOptions< TQueryFnData, TError, TData, TQueryKey, TPageParam >, ): DefinedInitialDataInfiniteOptions< TQueryFnData, TError, TData, TQueryKey, TPageParam > & { queryKey: DataTag<TQueryKey, TData> } export function infiniteQueryOptions(options: unknown) { return options }