MCPcopy Create free account
hub / github.com/TanStack/query / usePrefetchQuery

Function usePrefetchQuery

packages/vue-query/src/usePrefetchQuery.ts:86–130  ·  view source on GitHub ↗
(
  options: MaybeRefOrGetter<
    MaybeRefDeep<
      UsePrefetchQueryOptions<
        TQueryFnData,
        TError,
        TData,
        TQueryData,
        TQueryKey
      >
    >
  >,
  queryClient?: QueryClient,
)

Source from the content-addressed store, hash-verified

84 * ```
85 */
86export function usePrefetchQuery<
87 TQueryFnData = unknown,
88 TError = DefaultError,
89 TData = TQueryFnData,
90 TQueryData = TQueryFnData,
91 TQueryKey extends QueryKey = QueryKey,
92>(
93 options: MaybeRefOrGetter<
94 MaybeRefDeep<
95 UsePrefetchQueryOptions<
96 TQueryFnData,
97 TError,
98 TData,
99 TQueryData,
100 TQueryKey
101 >
102 >
103 >,
104 queryClient?: QueryClient,
105): void {
106 if (process.env.NODE_ENV === 'development') {
107 if (!getCurrentScope()) {
108 console.warn(
109 'vue-query composable like "useQuery()" should only be used inside a "setup()" function or a running effect scope. They might otherwise lead to memory leaks.',
110 )
111 }
112 }
113
114 const client = queryClient || useQueryClient()
115
116 watchEffect(() => {
117 const resolvedOptions = isGetter(options) ? options() : unref(options)
118 const clonedOptions: UsePrefetchQueryOptions<
119 TQueryFnData,
120 TError,
121 TData,
122 TQueryData,
123 TQueryKey
124 > = cloneDeepUnref(resolvedOptions)
125
126 if (!client.getQueryState(clonedOptions.queryKey)) {
127 void client.query(clonedOptions).catch(noop)
128 }
129 })
130}

Calls 6

useQueryClientFunction · 0.90
cloneDeepUnrefFunction · 0.90
isGetterFunction · 0.70
optionsFunction · 0.50
getQueryStateMethod · 0.45
queryMethod · 0.45

Tested by

no test coverage detected