UNPKG

@tanstack/react-query

Version:

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

51 lines (44 loc) 1.51 kB
import type { DataTag, DefaultError, QueryKey } from '@tanstack/query-core' import type { UseQueryOptions } from './types' export type UndefinedInitialDataOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = UseQueryOptions<TQueryFnData, TError, TData, TQueryKey> & { initialData?: undefined } type NonUndefinedGuard<T> = T extends undefined ? never : T export type DefinedInitialDataOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = UseQueryOptions<TQueryFnData, TError, TData, TQueryKey> & { initialData: | NonUndefinedGuard<TQueryFnData> | (() => NonUndefinedGuard<TQueryFnData>) } export function queryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>, ): UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & { queryKey: DataTag<TQueryKey, TData> } export function queryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>, ): DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & { queryKey: DataTag<TQueryKey, TData> } export function queryOptions(options: unknown) { return options }