UNPKG

@tanstack/vue-query

Version:

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

152 lines (141 loc) 3.68 kB
import { QueryObserver } from '@tanstack/query-core' import { useBaseQuery } from './useBaseQuery' import type { DefaultError, DefinedQueryObserverResult, QueryKey, QueryObserverOptions, WithRequired, } from '@tanstack/query-core' import type { UseBaseQueryReturnType } from './useBaseQuery' import type { DeepUnwrapRef, MaybeRef, MaybeRefDeep, MaybeRefOrGetter, } from './types' import type { QueryClient } from './queryClient' type NonUndefinedGuard<T> = T extends undefined ? never : T export type UseQueryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = MaybeRef<{ [Property in keyof QueryObserverOptions< TQueryFnData, TError, TData, TQueryData, TQueryKey >]: Property extends 'queryFn' | 'select' ? QueryObserverOptions< TQueryFnData, TError, TData, TQueryData, DeepUnwrapRef<TQueryKey> >[Property] : Property extends 'enabled' ? MaybeRefOrGetter< QueryObserverOptions< TQueryFnData, TError, TData, TQueryData, TQueryKey >[Property] > : MaybeRefDeep< WithRequired< QueryObserverOptions< TQueryFnData, TError, TData, TQueryData, TQueryKey >, 'queryKey' >[Property] > }> export type UndefinedInitialQueryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey> & { initialData?: undefined } export type DefinedInitialQueryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey> & { initialData: | NonUndefinedGuard<TQueryFnData> | (() => NonUndefinedGuard<TQueryFnData>) } export type UseQueryReturnType<TData, TError> = UseBaseQueryReturnType< TData, TError > export type UseQueryDefinedReturnType<TData, TError> = UseBaseQueryReturnType< TData, TError, DefinedQueryObserverResult<TData, TError> > export function useQuery< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( options: UndefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient, ): UseQueryReturnType<TData, TError> export function useQuery< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( options: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient, ): UseQueryDefinedReturnType<TData, TError> export function useQuery< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( options: UseQueryOptions< TQueryFnData, TError, TData, TQueryFnData, TQueryKey >, queryClient?: QueryClient, ): UseQueryReturnType<TData, TError> export function useQuery< TQueryFnData, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( options: UseQueryOptions< TQueryFnData, TError, TData, TQueryFnData, TQueryKey >, queryClient?: QueryClient, ): | UseQueryReturnType<TData, TError> | UseQueryDefinedReturnType<TData, TError> { return useBaseQuery(QueryObserver, options, queryClient) }