Skip to content

Commit b2bd79d

Browse files
feat(vue-query): support useQuery options getter (#9866)
1 parent f7c9526 commit b2bd79d

File tree

4 files changed

+32
-13
lines changed

4 files changed

+32
-13
lines changed

.changeset/dark-birds-turn.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@tanstack/vue-query': minor
3+
---
4+
5+
feat(vue-query): support useQuery options getter

packages/vue-query/src/__tests__/useQuery.test.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,24 @@ describe('useQuery', () => {
4444
)
4545
})
4646

47+
test('should work with options getter', async () => {
48+
const query = useQuery(() => ({
49+
queryKey: ['key01'],
50+
queryFn: () => sleep(0).then(() => 'result01'),
51+
}))
52+
53+
await vi.advanceTimersByTimeAsync(0)
54+
55+
expect(query).toMatchObject({
56+
status: { value: 'success' },
57+
data: { value: 'result01' },
58+
isPending: { value: false },
59+
isFetching: { value: false },
60+
isFetched: { value: true },
61+
isSuccess: { value: true },
62+
})
63+
})
64+
4765
test('should return pending status initially', () => {
4866
const query = useQuery({
4967
queryKey: ['key1'],

packages/vue-query/src/useBaseQuery.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,11 @@ export function useBaseQuery<
8282
const client = queryClient || useQueryClient()
8383

8484
const defaultedOptions = computed(() => {
85-
const clonedOptions = cloneDeepUnref(options as any)
85+
let resolvedOptions = options
86+
if (typeof resolvedOptions === 'function') {
87+
resolvedOptions = resolvedOptions()
88+
}
89+
const clonedOptions = cloneDeepUnref(resolvedOptions as any)
8690

8791
if (typeof clonedOptions.enabled === 'function') {
8892
clonedOptions.enabled = clonedOptions.enabled()

packages/vue-query/src/useQuery.ts

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,8 @@ export function useQuery<
114114
TData = TQueryFnData,
115115
TQueryKey extends QueryKey = QueryKey,
116116
>(
117-
options: UseQueryOptions<
118-
TQueryFnData,
119-
TError,
120-
TData,
121-
TQueryFnData,
122-
TQueryKey
117+
options: MaybeRefOrGetter<
118+
UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>
123119
>,
124120
queryClient?: QueryClient,
125121
): UseQueryReturnType<TData, TError>
@@ -130,12 +126,8 @@ export function useQuery<
130126
TData = TQueryFnData,
131127
TQueryKey extends QueryKey = QueryKey,
132128
>(
133-
options: UseQueryOptions<
134-
TQueryFnData,
135-
TError,
136-
TData,
137-
TQueryFnData,
138-
TQueryKey
129+
options: MaybeRefOrGetter<
130+
UseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>
139131
>,
140132
queryClient?: QueryClient,
141133
):

0 commit comments

Comments
 (0)