Skip to content

Commit

Permalink
fix(vue-query): useQueries options allow empty array and setup queryC…
Browse files Browse the repository at this point in the history
…lient
  • Loading branch information
Naymi committed Nov 7, 2022
1 parent c27dd7a commit 7399e12
Showing 1 changed file with 18 additions and 4 deletions.
22 changes: 18 additions & 4 deletions packages/vue-query/src/useQueries.ts
@@ -1,5 +1,6 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import { QueriesObserver } from '@tanstack/query-core'
import type { QueryClient } from '@tanstack/query-core'
import { onScopeDispose, reactive, readonly, watch } from 'vue-demi'
import type { Ref } from 'vue-demi'

Expand Down Expand Up @@ -125,15 +126,28 @@ export type UseQueriesResults<

type UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]

export type UseQueriesItem<T extends any[]> = Omit<
UseQueriesOptionsArg<T>,
'queryClient' | 'queryClientKey'
>

export function useQueries<T extends any[]>({
queries,
...queriesOptions
}: {
queries: Ref<UseQueriesOptionsArg<T>> | UseQueriesOptionsArg<T>
}): Readonly<UseQueriesResults<T>> {
queries: Ref<UseQueriesItem<T>> | UseQueriesItem<T>
} & ({ queryClient?: QueryClient } | { queryClientKey?: string })): Readonly<
UseQueriesResults<T>
> {
const unreffedQueries = cloneDeepUnref(queries) as UseQueriesOptionsArg<T>

const queryClientKey = unreffedQueries[0].queryClientKey
const optionsQueryClient = unreffedQueries[0].queryClient
const optionsQueryClient =
'queryClient' in queriesOptions ? queriesOptions.queryClient : undefined
const queryClientKey =
'queryClientKey' in queriesOptions
? queriesOptions.queryClientKey
: undefined

const queryClient = optionsQueryClient ?? useQueryClient(queryClientKey)
const defaultedQueries = unreffedQueries.map((options) => {
return queryClient.defaultQueryOptions(options)
Expand Down

0 comments on commit 7399e12

Please sign in to comment.