UNPKG

@tanstack/vue-query

Version:

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

150 lines (140 loc) 3.79 kB
import { QueryObserver } from '@tanstack/query-core' import { useBaseQuery } from './useBaseQuery' import type { DefaultError, DefinedQueryObserverResult, InitialDataFunction, NonUndefinedGuard, QueryKey, QueryObserverOptions, } from '@tanstack/query-core' import type { UseBaseQueryReturnType } from './useBaseQuery' import type { DeepUnwrapRef, MaybeRef, MaybeRefDeep, MaybeRefOrGetter, } from './types' import type { QueryClient } from './queryClient' 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 'enabled' ? MaybeRefOrGetter< QueryObserverOptions< TQueryFnData, TError, TData, TQueryData, DeepUnwrapRef<TQueryKey> >[Property] > : MaybeRefDeep< QueryObserverOptions< TQueryFnData, TError, TData, TQueryData, DeepUnwrapRef<TQueryKey> >[Property] > } & { /** * Return data in a shallow ref object (it is `false` by default). It can be set to `true` to return data in a shallow ref object, which can improve performance if your data does not need to be deeply reactive. */ shallow?: boolean } > export type UndefinedInitialQueryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey> & { initialData?: | undefined | InitialDataFunction<NonUndefinedGuard<TQueryFnData>> | NonUndefinedGuard<TQueryFnData> } 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: DefinedInitialQueryOptions<TQueryFnData, TError, TData, TQueryKey>, queryClient?: QueryClient, ): UseQueryDefinedReturnType<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: 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) }