Skip to content

Commit 1d2aec9

Browse files
authored
feat: add queryClient to options (#203)
1 parent 111167c commit 1d2aec9

File tree

6 files changed

+15
-6
lines changed

6 files changed

+15
-6
lines changed

src/vuejs/types.ts

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import type {
44
InfiniteQueryObserverOptions,
55
} from "@tanstack/query-core";
66
import { Ref, UnwrapRef } from "vue-demi";
7+
import type { QueryClient } from "vue-query";
78

89
export type MaybeRef<T> = Ref<T> | T;
910
export type MaybeRefDeep<T> = T extends Function
@@ -16,7 +17,10 @@ export type MaybeRefDeep<T> = T extends Function
1617
: T
1718
>;
1819

19-
export type WithQueryClientKey<T> = T & { queryClientKey?: string };
20+
export type WithQueryClientKey<T> = T & {
21+
queryClientKey?: string;
22+
queryClient?: QueryClient;
23+
};
2024

2125
// A Vue version of QueriesObserverOptions from "@tanstack/query-core"
2226
// Accept refs as options

src/vuejs/useBaseQuery.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ export function useBaseQuery<
5454
arg3: UseQueryOptionsGeneric<TQueryFnData, TError, TData, TQueryKey> = {}
5555
): UseQueryReturnType<TData, TError> {
5656
const options = getQueryUnreffedOptions();
57-
const queryClient = useQueryClient(options.queryClientKey);
57+
const queryClient =
58+
options.queryClient ?? useQueryClient(options.queryClientKey);
5859
const defaultedOptions = queryClient.defaultQueryOptions(options);
5960
const observer = new Observer(queryClient, defaultedOptions);
6061
const state = reactive(observer.getCurrentResult());

src/vuejs/useIsFetching.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ export function useIsFetching(
1717
arg2?: QueryFilters
1818
): Ref<number> {
1919
const filters = ref(parseFilterArgs(arg1, arg2));
20-
const queryClient = useQueryClient(filters.value.queryClientKey);
20+
const queryClient =
21+
filters.value.queryClient ?? useQueryClient(filters.value.queryClientKey);
2122

2223
const isFetching = ref(queryClient.isFetching(filters));
2324

src/vuejs/useIsMutating.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ export function useIsMutating(
1717
arg2?: Omit<MutationFilters, "mutationKey">
1818
): Ref<number> {
1919
const filters = ref(parseMutationFilterArgs(arg1, arg2));
20-
const queryClient = useQueryClient(filters.value.queryClientKey);
20+
const queryClient =
21+
filters.value.queryClient ?? useQueryClient(filters.value.queryClientKey);
2122

2223
const isMutating = ref(queryClient.isMutating(filters));
2324

src/vuejs/useMutation.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,8 @@ export function useMutation<
111111
arg3?: UseMutationOptions<TData, TError, TVariables, TContext>
112112
): UseMutationReturnType<TData, TError, TVariables, TContext> {
113113
const options = parseMutationArgs(arg1, arg2, arg3);
114-
const queryClient = useQueryClient(options.queryClientKey);
114+
const queryClient =
115+
options.queryClient ?? useQueryClient(options.queryClientKey);
115116
const defaultedOptions = queryClient.defaultMutationOptions(options);
116117
const observer = new MutationObserver(queryClient, defaultedOptions);
117118

src/vuejs/useQueries.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,8 @@ export function useQueries<T extends any[]>({
132132
const unreffedQueries = cloneDeepUnref(queries) as UseQueriesOptionsArg<T>;
133133

134134
const queryClientKey = unreffedQueries[0].queryClientKey;
135-
const queryClient = useQueryClient(queryClientKey);
135+
const optionsQueryClient = unreffedQueries[0].queryClient;
136+
const queryClient = optionsQueryClient ?? useQueryClient(queryClientKey);
136137
const defaultedQueries = unreffedQueries.map((options) => {
137138
return queryClient.defaultQueryOptions(options);
138139
});

0 commit comments

Comments
 (0)