@tanstack/vue-query 5.0.0-alpha.7 → 5.0.0-alpha.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -14
- package/build/lib/__mocks__/useBaseQuery.d.ts +1 -0
- package/build/lib/__mocks__/useBaseQuery.d.ts.map +1 -0
- package/build/lib/__mocks__/useQueryClient.d.ts +1 -0
- package/build/lib/__mocks__/useQueryClient.d.ts.map +1 -0
- package/build/lib/__tests__/mutationCache.test.d.ts +1 -0
- package/build/lib/__tests__/mutationCache.test.d.ts.map +1 -0
- package/build/lib/__tests__/queryCache.test.d.ts +1 -0
- package/build/lib/__tests__/queryCache.test.d.ts.map +1 -0
- package/build/lib/__tests__/queryClient.test.d.ts +1 -0
- package/build/lib/__tests__/queryClient.test.d.ts.map +1 -0
- package/build/lib/__tests__/test-utils.d.ts +3 -2
- package/build/lib/__tests__/test-utils.d.ts.map +1 -0
- package/build/lib/__tests__/useInfiniteQuery.test.d.ts +1 -0
- package/build/lib/__tests__/useInfiniteQuery.test.d.ts.map +1 -0
- package/build/lib/__tests__/useInfiniteQuery.types.test.d.ts +1 -0
- package/build/lib/__tests__/useInfiniteQuery.types.test.d.ts.map +1 -0
- package/build/lib/__tests__/useIsFetching.test.d.ts +1 -0
- package/build/lib/__tests__/useIsFetching.test.d.ts.map +1 -0
- package/build/lib/__tests__/useIsMutating.test.d.ts +1 -0
- package/build/lib/__tests__/useIsMutating.test.d.ts.map +1 -0
- package/build/lib/__tests__/useMutation.test.d.ts +1 -0
- package/build/lib/__tests__/useMutation.test.d.ts.map +1 -0
- package/build/lib/__tests__/useMutation.types.test.d.ts +1 -0
- package/build/lib/__tests__/useMutation.types.test.d.ts.map +1 -0
- package/build/lib/__tests__/useQueries.test.d.ts +1 -0
- package/build/lib/__tests__/useQueries.test.d.ts.map +1 -0
- package/build/lib/__tests__/useQuery.test.d.ts +1 -0
- package/build/lib/__tests__/useQuery.test.d.ts.map +1 -0
- package/build/lib/__tests__/useQuery.types.test.d.ts +1 -0
- package/build/lib/__tests__/useQuery.types.test.d.ts.map +1 -0
- package/build/lib/__tests__/useQueryClient.test.d.ts +1 -0
- package/build/lib/__tests__/useQueryClient.test.d.ts.map +1 -0
- package/build/lib/__tests__/utils.test.d.ts +1 -0
- package/build/lib/__tests__/utils.test.d.ts.map +1 -0
- package/build/lib/__tests__/vueQueryPlugin.test.d.ts +1 -0
- package/build/lib/__tests__/vueQueryPlugin.test.d.ts.map +1 -0
- package/build/lib/devtools/{devtools.mjs → devtools.cjs} +62 -20
- package/build/lib/devtools/devtools.cjs.map +1 -0
- package/build/lib/devtools/devtools.d.ts +1 -0
- package/build/lib/devtools/devtools.d.ts.map +1 -0
- package/build/lib/devtools/devtools.js +61 -25
- package/build/lib/devtools/devtools.js.map +1 -1
- package/build/lib/devtools/devtools.legacy.cjs +198 -0
- package/build/lib/devtools/devtools.legacy.cjs.map +1 -0
- package/build/lib/devtools/{devtools.esm.js → devtools.legacy.js} +48 -8
- package/build/lib/devtools/devtools.legacy.js.map +1 -0
- package/build/lib/devtools/{utils.mjs → utils.cjs} +11 -5
- package/build/lib/devtools/{utils.mjs.map → utils.cjs.map} +1 -1
- package/build/lib/devtools/utils.d.ts +2 -1
- package/build/lib/devtools/utils.d.ts.map +1 -0
- package/build/lib/devtools/utils.js +4 -10
- package/build/lib/devtools/utils.js.map +1 -1
- package/build/lib/devtools/utils.legacy.cjs +85 -0
- package/build/lib/devtools/utils.legacy.cjs.map +1 -0
- package/build/lib/devtools/{utils.esm.js → utils.legacy.js} +4 -4
- package/build/lib/devtools/utils.legacy.js.map +1 -0
- package/build/lib/index.cjs +38 -0
- package/build/lib/index.cjs.map +1 -0
- package/build/lib/index.d.ts +1 -0
- package/build/lib/index.d.ts.map +1 -0
- package/build/lib/index.js +13 -37
- package/build/lib/index.js.map +1 -1
- package/build/lib/index.legacy.cjs +38 -0
- package/build/lib/index.legacy.cjs.map +1 -0
- package/build/lib/index.legacy.js +14 -0
- package/build/lib/index.legacy.js.map +1 -0
- package/build/lib/mutationCache.cjs +16 -0
- package/build/lib/{mutationCache.mjs.map → mutationCache.cjs.map} +1 -1
- package/build/lib/mutationCache.d.ts +1 -0
- package/build/lib/mutationCache.d.ts.map +1 -0
- package/build/lib/mutationCache.js +6 -8
- package/build/lib/mutationCache.js.map +1 -1
- package/build/lib/mutationCache.legacy.cjs +16 -0
- package/build/lib/mutationCache.legacy.cjs.map +1 -0
- package/build/lib/{mutationCache.esm.js → mutationCache.legacy.js} +2 -2
- package/build/lib/mutationCache.legacy.js.map +1 -0
- package/build/lib/queryCache.cjs +16 -0
- package/build/lib/{queryCache.mjs.map → queryCache.cjs.map} +1 -1
- package/build/lib/queryCache.d.ts +1 -0
- package/build/lib/queryCache.d.ts.map +1 -0
- package/build/lib/queryCache.js +6 -8
- package/build/lib/queryCache.js.map +1 -1
- package/build/lib/queryCache.legacy.cjs +16 -0
- package/build/lib/queryCache.legacy.cjs.map +1 -0
- package/build/lib/{queryCache.esm.js → queryCache.legacy.js} +2 -2
- package/build/lib/queryCache.legacy.js.map +1 -0
- package/build/lib/queryClient.cjs +86 -0
- package/build/lib/{queryClient.mjs.map → queryClient.cjs.map} +1 -1
- package/build/lib/queryClient.d.ts +1 -0
- package/build/lib/queryClient.d.ts.map +1 -0
- package/build/lib/queryClient.js +32 -34
- package/build/lib/queryClient.js.map +1 -1
- package/build/lib/queryClient.legacy.cjs +86 -0
- package/build/lib/queryClient.legacy.cjs.map +1 -0
- package/build/lib/{queryClient.esm.js → queryClient.legacy.js} +4 -4
- package/build/lib/queryClient.legacy.js.map +1 -0
- package/build/lib/types.d.ts +4 -3
- package/build/lib/types.d.ts.map +1 -0
- package/build/lib/useBaseQuery.cjs +69 -0
- package/build/lib/useBaseQuery.cjs.map +1 -0
- package/build/lib/useBaseQuery.d.ts +3 -2
- package/build/lib/useBaseQuery.d.ts.map +1 -0
- package/build/lib/useBaseQuery.js +23 -25
- package/build/lib/useBaseQuery.js.map +1 -1
- package/build/lib/useBaseQuery.legacy.cjs +69 -0
- package/build/lib/useBaseQuery.legacy.cjs.map +1 -0
- package/build/lib/{useBaseQuery.esm.js → useBaseQuery.legacy.js} +12 -12
- package/build/lib/useBaseQuery.legacy.js.map +1 -0
- package/build/lib/{useInfiniteQuery.mjs → useInfiniteQuery.cjs} +8 -6
- package/build/lib/{useInfiniteQuery.mjs.map → useInfiniteQuery.cjs.map} +1 -1
- package/build/lib/useInfiniteQuery.d.ts +4 -3
- package/build/lib/useInfiniteQuery.d.ts.map +1 -0
- package/build/lib/useInfiniteQuery.js +5 -7
- package/build/lib/useInfiniteQuery.js.map +1 -1
- package/build/lib/useInfiniteQuery.legacy.cjs +20 -0
- package/build/lib/useInfiniteQuery.legacy.cjs.map +1 -0
- package/build/lib/{useInfiniteQuery.esm.js → useInfiniteQuery.legacy.js} +2 -2
- package/build/lib/useInfiniteQuery.legacy.js.map +1 -0
- package/build/lib/useIsFetching.cjs +29 -0
- package/build/lib/useIsFetching.cjs.map +1 -0
- package/build/lib/useIsFetching.d.ts +2 -1
- package/build/lib/useIsFetching.d.ts.map +1 -0
- package/build/lib/useIsFetching.js +13 -12
- package/build/lib/useIsFetching.js.map +1 -1
- package/build/lib/useIsFetching.legacy.cjs +29 -0
- package/build/lib/useIsFetching.legacy.cjs.map +1 -0
- package/build/lib/{useIsFetching.esm.js → useIsFetching.legacy.js} +7 -4
- package/build/lib/useIsFetching.legacy.js.map +1 -0
- package/build/lib/useMutation.cjs +43 -0
- package/build/lib/useMutation.cjs.map +1 -0
- package/build/lib/useMutation.d.ts +5 -4
- package/build/lib/useMutation.d.ts.map +1 -0
- package/build/lib/useMutation.js +17 -17
- package/build/lib/useMutation.js.map +1 -1
- package/build/lib/useMutation.legacy.cjs +43 -0
- package/build/lib/useMutation.legacy.cjs.map +1 -0
- package/build/lib/{useMutation.esm.js → useMutation.legacy.js} +7 -5
- package/build/lib/useMutation.legacy.js.map +1 -0
- package/build/lib/useMutationState.cjs +43 -0
- package/build/lib/useMutationState.cjs.map +1 -0
- package/build/lib/useMutationState.d.ts +5 -4
- package/build/lib/useMutationState.d.ts.map +1 -0
- package/build/lib/useMutationState.js +20 -16
- package/build/lib/useMutationState.js.map +1 -1
- package/build/lib/useMutationState.legacy.cjs +43 -0
- package/build/lib/useMutationState.legacy.cjs.map +1 -0
- package/build/lib/{useMutationState.esm.js → useMutationState.legacy.js} +13 -6
- package/build/lib/useMutationState.legacy.js.map +1 -0
- package/build/lib/useQueries.cjs +63 -0
- package/build/lib/{useQueries.esm.js.map → useQueries.cjs.map} +1 -1
- package/build/lib/useQueries.d.ts +12 -11
- package/build/lib/useQueries.d.ts.map +1 -0
- package/build/lib/useQueries.js +38 -25
- package/build/lib/useQueries.js.map +1 -1
- package/build/lib/useQueries.legacy.cjs +63 -0
- package/build/lib/useQueries.legacy.cjs.map +1 -0
- package/build/lib/useQueries.legacy.js +61 -0
- package/build/lib/useQueries.legacy.js.map +1 -0
- package/build/lib/useQuery.cjs +15 -0
- package/build/lib/{useQuery.mjs.map → useQuery.cjs.map} +1 -1
- package/build/lib/useQuery.d.ts +4 -3
- package/build/lib/useQuery.d.ts.map +1 -0
- package/build/lib/useQuery.js +4 -6
- package/build/lib/useQuery.js.map +1 -1
- package/build/lib/useQuery.legacy.cjs +15 -0
- package/build/lib/useQuery.legacy.cjs.map +1 -0
- package/build/lib/{useQuery.esm.js → useQuery.legacy.js} +2 -2
- package/build/lib/useQuery.legacy.js.map +1 -0
- package/build/lib/{useQueryClient.mjs → useQueryClient.cjs} +9 -7
- package/build/lib/{useQueryClient.mjs.map → useQueryClient.cjs.map} +1 -1
- package/build/lib/useQueryClient.d.ts +1 -0
- package/build/lib/useQueryClient.d.ts.map +1 -0
- package/build/lib/useQueryClient.js +6 -9
- package/build/lib/useQueryClient.js.map +1 -1
- package/build/lib/useQueryClient.legacy.cjs +21 -0
- package/build/lib/useQueryClient.legacy.cjs.map +1 -0
- package/build/lib/{useQueryClient.esm.js → useQueryClient.legacy.js} +2 -2
- package/build/lib/useQueryClient.legacy.js.map +1 -0
- package/build/lib/{utils.mjs → utils.cjs} +16 -6
- package/build/lib/utils.cjs.map +1 -0
- package/build/lib/utils.d.ts +2 -0
- package/build/lib/utils.d.ts.map +1 -0
- package/build/lib/utils.js +8 -11
- package/build/lib/utils.js.map +1 -1
- package/build/lib/utils.legacy.cjs +60 -0
- package/build/lib/utils.legacy.cjs.map +1 -0
- package/build/lib/{utils.esm.js → utils.legacy.js} +5 -2
- package/build/lib/utils.legacy.js.map +1 -0
- package/build/lib/{vueQueryPlugin.esm.js → vueQueryPlugin.cjs} +16 -16
- package/build/lib/vueQueryPlugin.cjs.map +1 -0
- package/build/lib/vueQueryPlugin.d.ts +3 -2
- package/build/lib/vueQueryPlugin.d.ts.map +1 -0
- package/build/lib/vueQueryPlugin.js +13 -17
- package/build/lib/vueQueryPlugin.js.map +1 -1
- package/build/lib/vueQueryPlugin.legacy.cjs +73 -0
- package/build/lib/vueQueryPlugin.legacy.cjs.map +1 -0
- package/build/lib/{vueQueryPlugin.mjs → vueQueryPlugin.legacy.js} +5 -7
- package/build/lib/vueQueryPlugin.legacy.js.map +1 -0
- package/package.json +20 -15
- package/src/__mocks__/useBaseQuery.ts +8 -0
- package/src/__mocks__/useQueryClient.ts +10 -0
- package/src/__tests__/mutationCache.test.ts +40 -0
- package/src/__tests__/queryCache.test.ts +48 -0
- package/src/__tests__/queryClient.test.ts +365 -0
- package/src/__tests__/test-utils.ts +62 -0
- package/src/__tests__/useInfiniteQuery.test.ts +37 -0
- package/src/__tests__/useInfiniteQuery.types.test.tsx +102 -0
- package/src/__tests__/useIsFetching.test.ts +77 -0
- package/src/__tests__/useIsMutating.test.ts +123 -0
- package/src/__tests__/useMutation.test.ts +335 -0
- package/src/__tests__/useMutation.types.test.tsx +97 -0
- package/src/__tests__/useQueries.test.ts +256 -0
- package/src/__tests__/useQuery.test.ts +290 -0
- package/src/__tests__/useQuery.types.test.tsx +88 -0
- package/src/__tests__/useQueryClient.test.ts +51 -0
- package/src/__tests__/utils.test.ts +148 -0
- package/src/__tests__/vueQueryPlugin.test.ts +351 -0
- package/src/devtools/devtools.ts +249 -0
- package/src/devtools/utils.ts +96 -0
- package/src/index.ts +30 -0
- package/src/mutationCache.ts +25 -0
- package/src/queryCache.ts +21 -0
- package/src/queryClient.ts +278 -0
- package/src/types.ts +17 -0
- package/src/useBaseQuery.ts +152 -0
- package/src/useInfiniteQuery.ts +105 -0
- package/src/useIsFetching.ts +41 -0
- package/src/useMutation.ts +113 -0
- package/src/useMutationState.ts +81 -0
- package/src/useQueries.ts +228 -0
- package/src/useQuery.ts +125 -0
- package/src/useQueryClient.ts +23 -0
- package/src/utils.ts +71 -0
- package/src/vueQueryPlugin.ts +99 -0
- package/build/lib/devtools/devtools.esm.js.map +0 -1
- package/build/lib/devtools/devtools.mjs.map +0 -1
- package/build/lib/devtools/utils.esm.js.map +0 -1
- package/build/lib/index.esm.js +0 -14
- package/build/lib/index.esm.js.map +0 -1
- package/build/lib/index.mjs +0 -14
- package/build/lib/index.mjs.map +0 -1
- package/build/lib/mutationCache.esm.js.map +0 -1
- package/build/lib/mutationCache.mjs +0 -14
- package/build/lib/queryCache.esm.js.map +0 -1
- package/build/lib/queryCache.mjs +0 -14
- package/build/lib/queryClient.esm.js.map +0 -1
- package/build/lib/queryClient.mjs +0 -84
- package/build/lib/useBaseQuery.esm.js.map +0 -1
- package/build/lib/useBaseQuery.mjs +0 -67
- package/build/lib/useBaseQuery.mjs.map +0 -1
- package/build/lib/useInfiniteQuery.esm.js.map +0 -1
- package/build/lib/useIsFetching.esm.js.map +0 -1
- package/build/lib/useIsFetching.mjs +0 -24
- package/build/lib/useIsFetching.mjs.map +0 -1
- package/build/lib/useMutation.esm.js.map +0 -1
- package/build/lib/useMutation.mjs +0 -39
- package/build/lib/useMutation.mjs.map +0 -1
- package/build/lib/useMutationState.esm.js.map +0 -1
- package/build/lib/useMutationState.mjs +0 -33
- package/build/lib/useMutationState.mjs.map +0 -1
- package/build/lib/useQueries.esm.js +0 -46
- package/build/lib/useQueries.mjs +0 -46
- package/build/lib/useQueries.mjs.map +0 -1
- package/build/lib/useQuery.esm.js.map +0 -1
- package/build/lib/useQuery.mjs +0 -13
- package/build/lib/useQueryClient.esm.js.map +0 -1
- package/build/lib/utils.esm.js.map +0 -1
- package/build/lib/utils.mjs.map +0 -1
- package/build/lib/vueQueryPlugin.esm.js.map +0 -1
- package/build/lib/vueQueryPlugin.mjs.map +0 -1
- package/build/umd/index.development.js +0 -4199
- package/build/umd/index.development.js.map +0 -1
- package/build/umd/index.production.js +0 -2
- package/build/umd/index.production.js.map +0 -1
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { isServer, QueriesObserver } from '@tanstack/query-core'
|
|
3
|
+
import type {
|
|
4
|
+
QueriesPlaceholderDataFunction,
|
|
5
|
+
QueryKey,
|
|
6
|
+
QueriesObserverOptions,
|
|
7
|
+
QueryFunction,
|
|
8
|
+
QueryObserverResult,
|
|
9
|
+
} from '@tanstack/query-core'
|
|
10
|
+
import type { Ref } from 'vue-demi'
|
|
11
|
+
import { computed, onScopeDispose, readonly, ref, watch } from 'vue-demi'
|
|
12
|
+
|
|
13
|
+
import { useQueryClient } from './useQueryClient'
|
|
14
|
+
import { cloneDeepUnref, noop } from './utils'
|
|
15
|
+
import type { UseQueryOptions } from './useQuery'
|
|
16
|
+
import type { QueryClient } from './queryClient'
|
|
17
|
+
import type { DistributiveOmit, MaybeRefDeep } from './types'
|
|
18
|
+
|
|
19
|
+
// This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.
|
|
20
|
+
// `placeholderData` function does not have a parameter
|
|
21
|
+
type UseQueryOptionsForUseQueries<
|
|
22
|
+
TQueryFnData = unknown,
|
|
23
|
+
TError = unknown,
|
|
24
|
+
TData = TQueryFnData,
|
|
25
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
26
|
+
> = DistributiveOmit<
|
|
27
|
+
UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
28
|
+
'placeholderData'
|
|
29
|
+
> & {
|
|
30
|
+
placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Avoid TS depth-limit error in case of large array literal
|
|
34
|
+
type MAXIMUM_DEPTH = 20
|
|
35
|
+
|
|
36
|
+
type GetOptions<T> =
|
|
37
|
+
// Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }
|
|
38
|
+
T extends {
|
|
39
|
+
queryFnData: infer TQueryFnData
|
|
40
|
+
error?: infer TError
|
|
41
|
+
data: infer TData
|
|
42
|
+
}
|
|
43
|
+
? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>
|
|
44
|
+
: T extends { queryFnData: infer TQueryFnData; error?: infer TError }
|
|
45
|
+
? UseQueryOptionsForUseQueries<TQueryFnData, TError>
|
|
46
|
+
: T extends { data: infer TData; error?: infer TError }
|
|
47
|
+
? UseQueryOptionsForUseQueries<unknown, TError, TData>
|
|
48
|
+
: // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]
|
|
49
|
+
T extends [infer TQueryFnData, infer TError, infer TData]
|
|
50
|
+
? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>
|
|
51
|
+
: T extends [infer TQueryFnData, infer TError]
|
|
52
|
+
? UseQueryOptionsForUseQueries<TQueryFnData, TError>
|
|
53
|
+
: T extends [infer TQueryFnData]
|
|
54
|
+
? UseQueryOptionsForUseQueries<TQueryFnData>
|
|
55
|
+
: // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided
|
|
56
|
+
T extends {
|
|
57
|
+
queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>
|
|
58
|
+
select: (data: any) => infer TData
|
|
59
|
+
}
|
|
60
|
+
? UseQueryOptionsForUseQueries<TQueryFnData, Error, TData, TQueryKey>
|
|
61
|
+
: T extends { queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey> }
|
|
62
|
+
? UseQueryOptionsForUseQueries<TQueryFnData, Error, TQueryFnData, TQueryKey>
|
|
63
|
+
: // Fallback
|
|
64
|
+
UseQueryOptionsForUseQueries
|
|
65
|
+
|
|
66
|
+
type GetResults<T> =
|
|
67
|
+
// Part 1: responsible for mapping explicit type parameter to function result, if object
|
|
68
|
+
T extends { queryFnData: any; error?: infer TError; data: infer TData }
|
|
69
|
+
? QueryObserverResult<TData, TError>
|
|
70
|
+
: T extends { queryFnData: infer TQueryFnData; error?: infer TError }
|
|
71
|
+
? QueryObserverResult<TQueryFnData, TError>
|
|
72
|
+
: T extends { data: infer TData; error?: infer TError }
|
|
73
|
+
? QueryObserverResult<TData, TError>
|
|
74
|
+
: // Part 2: responsible for mapping explicit type parameter to function result, if tuple
|
|
75
|
+
T extends [any, infer TError, infer TData]
|
|
76
|
+
? QueryObserverResult<TData, TError>
|
|
77
|
+
: T extends [infer TQueryFnData, infer TError]
|
|
78
|
+
? QueryObserverResult<TQueryFnData, TError>
|
|
79
|
+
: T extends [infer TQueryFnData]
|
|
80
|
+
? QueryObserverResult<TQueryFnData>
|
|
81
|
+
: // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided
|
|
82
|
+
T extends {
|
|
83
|
+
queryFn?: QueryFunction<unknown, any>
|
|
84
|
+
select: (data: any) => infer TData
|
|
85
|
+
}
|
|
86
|
+
? QueryObserverResult<TData>
|
|
87
|
+
: T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }
|
|
88
|
+
? QueryObserverResult<TQueryFnData>
|
|
89
|
+
: // Fallback
|
|
90
|
+
QueryObserverResult
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* UseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param
|
|
94
|
+
*/
|
|
95
|
+
export type UseQueriesOptions<
|
|
96
|
+
T extends any[],
|
|
97
|
+
Result extends any[] = [],
|
|
98
|
+
Depth extends ReadonlyArray<number> = [],
|
|
99
|
+
> = Depth['length'] extends MAXIMUM_DEPTH
|
|
100
|
+
? UseQueryOptionsForUseQueries[]
|
|
101
|
+
: T extends []
|
|
102
|
+
? []
|
|
103
|
+
: T extends [infer Head]
|
|
104
|
+
? [...Result, GetOptions<Head>]
|
|
105
|
+
: T extends [infer Head, ...infer Tail]
|
|
106
|
+
? UseQueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>
|
|
107
|
+
: unknown[] extends T
|
|
108
|
+
? T
|
|
109
|
+
: // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!
|
|
110
|
+
// use this to infer the param types in the case of Array.map() argument
|
|
111
|
+
T extends UseQueryOptionsForUseQueries<
|
|
112
|
+
infer TQueryFnData,
|
|
113
|
+
infer TError,
|
|
114
|
+
infer TData,
|
|
115
|
+
infer TQueryKey
|
|
116
|
+
>[]
|
|
117
|
+
? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>[]
|
|
118
|
+
: // Fallback
|
|
119
|
+
UseQueryOptionsForUseQueries[]
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* UseQueriesResults reducer recursively maps type param to results
|
|
123
|
+
*/
|
|
124
|
+
export type UseQueriesResults<
|
|
125
|
+
T extends any[],
|
|
126
|
+
Result extends any[] = [],
|
|
127
|
+
Depth extends ReadonlyArray<number> = [],
|
|
128
|
+
> = Depth['length'] extends MAXIMUM_DEPTH
|
|
129
|
+
? QueryObserverResult[]
|
|
130
|
+
: T extends []
|
|
131
|
+
? []
|
|
132
|
+
: T extends [infer Head]
|
|
133
|
+
? [...Result, GetResults<Head>]
|
|
134
|
+
: T extends [infer Head, ...infer Tail]
|
|
135
|
+
? UseQueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>
|
|
136
|
+
: T extends UseQueryOptionsForUseQueries<
|
|
137
|
+
infer TQueryFnData,
|
|
138
|
+
infer TError,
|
|
139
|
+
infer TData,
|
|
140
|
+
any
|
|
141
|
+
>[]
|
|
142
|
+
? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results
|
|
143
|
+
QueryObserverResult<unknown extends TData ? TQueryFnData : TData, TError>[]
|
|
144
|
+
: // Fallback
|
|
145
|
+
QueryObserverResult[]
|
|
146
|
+
|
|
147
|
+
type UseQueriesOptionsArg<T extends any[]> = readonly [...UseQueriesOptions<T>]
|
|
148
|
+
|
|
149
|
+
export function useQueries<
|
|
150
|
+
T extends any[],
|
|
151
|
+
TCombinedResult = UseQueriesResults<T>,
|
|
152
|
+
>(
|
|
153
|
+
{
|
|
154
|
+
queries,
|
|
155
|
+
...options
|
|
156
|
+
}: {
|
|
157
|
+
queries: MaybeRefDeep<UseQueriesOptionsArg<T>>
|
|
158
|
+
combine?: (result: UseQueriesResults<T>) => TCombinedResult
|
|
159
|
+
},
|
|
160
|
+
queryClient?: QueryClient,
|
|
161
|
+
): Readonly<Ref<TCombinedResult>> {
|
|
162
|
+
const client = queryClient || useQueryClient()
|
|
163
|
+
|
|
164
|
+
const defaultedQueries = computed(() =>
|
|
165
|
+
cloneDeepUnref(queries).map((queryOptions) => {
|
|
166
|
+
const defaulted = client.defaultQueryOptions(queryOptions)
|
|
167
|
+
defaulted._optimisticResults = client.isRestoring.value
|
|
168
|
+
? 'isRestoring'
|
|
169
|
+
: 'optimistic'
|
|
170
|
+
|
|
171
|
+
return defaulted
|
|
172
|
+
}),
|
|
173
|
+
)
|
|
174
|
+
|
|
175
|
+
const observer = new QueriesObserver<TCombinedResult>(
|
|
176
|
+
client,
|
|
177
|
+
defaultedQueries.value,
|
|
178
|
+
options as QueriesObserverOptions<TCombinedResult>,
|
|
179
|
+
)
|
|
180
|
+
const [, getCombinedResult] = observer.getOptimisticResult(
|
|
181
|
+
defaultedQueries.value,
|
|
182
|
+
)
|
|
183
|
+
const state = ref(getCombinedResult()) as Ref<TCombinedResult>
|
|
184
|
+
|
|
185
|
+
const unsubscribe = ref(noop)
|
|
186
|
+
|
|
187
|
+
watch(
|
|
188
|
+
client.isRestoring,
|
|
189
|
+
(isRestoring) => {
|
|
190
|
+
if (!isRestoring) {
|
|
191
|
+
unsubscribe.value()
|
|
192
|
+
// Nuxt2 memory leak fix - do not subscribe on server
|
|
193
|
+
if (!isServer) {
|
|
194
|
+
unsubscribe.value = observer.subscribe(() => {
|
|
195
|
+
const [, getCombinedResultRestoring] = observer.getOptimisticResult(
|
|
196
|
+
defaultedQueries.value,
|
|
197
|
+
)
|
|
198
|
+
state.value = getCombinedResultRestoring()
|
|
199
|
+
})
|
|
200
|
+
}
|
|
201
|
+
// Subscription would not fire for persisted results
|
|
202
|
+
const [, getCombinedResultPersisted] = observer.getOptimisticResult(
|
|
203
|
+
defaultedQueries.value,
|
|
204
|
+
)
|
|
205
|
+
state.value = getCombinedResultPersisted()
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
{ immediate: true },
|
|
209
|
+
)
|
|
210
|
+
|
|
211
|
+
watch(
|
|
212
|
+
[defaultedQueries],
|
|
213
|
+
() => {
|
|
214
|
+
observer.setQueries(
|
|
215
|
+
defaultedQueries.value,
|
|
216
|
+
options as QueriesObserverOptions<TCombinedResult>,
|
|
217
|
+
)
|
|
218
|
+
state.value = observer.getCurrentResult()
|
|
219
|
+
},
|
|
220
|
+
{ deep: true },
|
|
221
|
+
)
|
|
222
|
+
|
|
223
|
+
onScopeDispose(() => {
|
|
224
|
+
unsubscribe.value()
|
|
225
|
+
})
|
|
226
|
+
|
|
227
|
+
return readonly(state) as Readonly<Ref<TCombinedResult>>
|
|
228
|
+
}
|
package/src/useQuery.ts
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import type { ToRefs, UnwrapRef } from 'vue-demi'
|
|
2
|
+
import { QueryObserver } from '@tanstack/query-core'
|
|
3
|
+
import type {
|
|
4
|
+
QueryKey,
|
|
5
|
+
QueryObserverResult,
|
|
6
|
+
DefinedQueryObserverResult,
|
|
7
|
+
WithRequired,
|
|
8
|
+
QueryObserverOptions,
|
|
9
|
+
DefaultError,
|
|
10
|
+
} from '@tanstack/query-core'
|
|
11
|
+
import { useBaseQuery } from './useBaseQuery'
|
|
12
|
+
import type { UseBaseQueryReturnType } from './useBaseQuery'
|
|
13
|
+
import type { DistributiveOmit, MaybeRefDeep } from './types'
|
|
14
|
+
import type { QueryClient } from './queryClient'
|
|
15
|
+
|
|
16
|
+
export type UseQueryOptions<
|
|
17
|
+
TQueryFnData = unknown,
|
|
18
|
+
TError = DefaultError,
|
|
19
|
+
TData = TQueryFnData,
|
|
20
|
+
TQueryData = TQueryFnData,
|
|
21
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
22
|
+
> = {
|
|
23
|
+
[Property in keyof QueryObserverOptions<
|
|
24
|
+
TQueryFnData,
|
|
25
|
+
TError,
|
|
26
|
+
TData,
|
|
27
|
+
TQueryData,
|
|
28
|
+
TQueryKey
|
|
29
|
+
>]: Property extends 'queryFn'
|
|
30
|
+
? QueryObserverOptions<
|
|
31
|
+
TQueryFnData,
|
|
32
|
+
TError,
|
|
33
|
+
TData,
|
|
34
|
+
TQueryData,
|
|
35
|
+
UnwrapRef<TQueryKey>
|
|
36
|
+
>[Property]
|
|
37
|
+
: MaybeRefDeep<
|
|
38
|
+
WithRequired<
|
|
39
|
+
QueryObserverOptions<
|
|
40
|
+
TQueryFnData,
|
|
41
|
+
TError,
|
|
42
|
+
TData,
|
|
43
|
+
TQueryData,
|
|
44
|
+
TQueryKey
|
|
45
|
+
>,
|
|
46
|
+
'queryKey'
|
|
47
|
+
>[Property]
|
|
48
|
+
>
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export type UseQueryReturnType<TData, TError> = DistributiveOmit<
|
|
52
|
+
UseBaseQueryReturnType<TData, TError>,
|
|
53
|
+
'refetch'
|
|
54
|
+
> & {
|
|
55
|
+
refetch: QueryObserverResult<TData, TError>['refetch']
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export type UseQueryDefinedReturnType<TData, TError> = DistributiveOmit<
|
|
59
|
+
ToRefs<Readonly<DefinedQueryObserverResult<TData, TError>>>,
|
|
60
|
+
'refetch'
|
|
61
|
+
> & {
|
|
62
|
+
suspense: () => Promise<QueryObserverResult<TData, TError>>
|
|
63
|
+
refetch: QueryObserverResult<TData, TError>['refetch']
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export function useQuery<
|
|
67
|
+
TQueryFnData = unknown,
|
|
68
|
+
TError = DefaultError,
|
|
69
|
+
TData = TQueryFnData,
|
|
70
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
71
|
+
>(
|
|
72
|
+
options: UseQueryOptions<
|
|
73
|
+
TQueryFnData,
|
|
74
|
+
TError,
|
|
75
|
+
TData,
|
|
76
|
+
TQueryFnData,
|
|
77
|
+
TQueryKey
|
|
78
|
+
> & {
|
|
79
|
+
initialData?: undefined
|
|
80
|
+
},
|
|
81
|
+
queryClient?: QueryClient,
|
|
82
|
+
): UseQueryReturnType<TData, TError>
|
|
83
|
+
|
|
84
|
+
export function useQuery<
|
|
85
|
+
TQueryFnData = unknown,
|
|
86
|
+
TError = DefaultError,
|
|
87
|
+
TData = TQueryFnData,
|
|
88
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
89
|
+
>(
|
|
90
|
+
options: UseQueryOptions<
|
|
91
|
+
TQueryFnData,
|
|
92
|
+
TError,
|
|
93
|
+
TData,
|
|
94
|
+
TQueryFnData,
|
|
95
|
+
TQueryKey
|
|
96
|
+
> & {
|
|
97
|
+
initialData: TQueryFnData | (() => TQueryFnData)
|
|
98
|
+
},
|
|
99
|
+
queryClient?: QueryClient,
|
|
100
|
+
): UseQueryDefinedReturnType<TData, TError>
|
|
101
|
+
|
|
102
|
+
export function useQuery<
|
|
103
|
+
TQueryFnData,
|
|
104
|
+
TError = DefaultError,
|
|
105
|
+
TData = TQueryFnData,
|
|
106
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
107
|
+
>(
|
|
108
|
+
options: UseQueryOptions<
|
|
109
|
+
TQueryFnData,
|
|
110
|
+
TError,
|
|
111
|
+
TData,
|
|
112
|
+
TQueryFnData,
|
|
113
|
+
TQueryKey
|
|
114
|
+
>,
|
|
115
|
+
queryClient?: QueryClient,
|
|
116
|
+
):
|
|
117
|
+
| UseQueryReturnType<TData, TError>
|
|
118
|
+
| UseQueryDefinedReturnType<TData, TError> {
|
|
119
|
+
const result = useBaseQuery(QueryObserver, options, queryClient)
|
|
120
|
+
|
|
121
|
+
return {
|
|
122
|
+
...result,
|
|
123
|
+
refetch: result.refetch.value,
|
|
124
|
+
}
|
|
125
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { getCurrentInstance, inject } from 'vue-demi'
|
|
2
|
+
|
|
3
|
+
import type { QueryClient } from './queryClient'
|
|
4
|
+
import { getClientKey } from './utils'
|
|
5
|
+
|
|
6
|
+
export function useQueryClient(id = ''): QueryClient {
|
|
7
|
+
const vm = getCurrentInstance()?.proxy
|
|
8
|
+
|
|
9
|
+
if (!vm) {
|
|
10
|
+
throw new Error('vue-query hooks can only be used inside setup() function.')
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const key = getClientKey(id)
|
|
14
|
+
const queryClient = inject<QueryClient>(key)
|
|
15
|
+
|
|
16
|
+
if (!queryClient) {
|
|
17
|
+
throw new Error(
|
|
18
|
+
"No 'queryClient' found in Vue context, use 'VueQueryPlugin' to properly initialize the library.",
|
|
19
|
+
)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return queryClient
|
|
23
|
+
}
|
package/src/utils.ts
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { isRef, unref } from 'vue-demi'
|
|
2
|
+
import type { MaybeRefDeep } from './types'
|
|
3
|
+
|
|
4
|
+
export const VUE_QUERY_CLIENT = 'VUE_QUERY_CLIENT'
|
|
5
|
+
|
|
6
|
+
export function getClientKey(key?: string) {
|
|
7
|
+
const suffix = key ? `:${key}` : ''
|
|
8
|
+
return `${VUE_QUERY_CLIENT}${suffix}`
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function updateState(
|
|
12
|
+
state: Record<string, unknown>,
|
|
13
|
+
update: Record<string, any>,
|
|
14
|
+
): void {
|
|
15
|
+
Object.keys(state).forEach((key) => {
|
|
16
|
+
state[key] = update[key]
|
|
17
|
+
})
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function cloneDeep<T>(
|
|
21
|
+
value: MaybeRefDeep<T>,
|
|
22
|
+
customizer?: (val: MaybeRefDeep<T>) => T | undefined,
|
|
23
|
+
): T {
|
|
24
|
+
if (customizer) {
|
|
25
|
+
const result = customizer(value)
|
|
26
|
+
// If it's a ref of undefined, return undefined
|
|
27
|
+
if (result === undefined && isRef(value)) {
|
|
28
|
+
return result as T
|
|
29
|
+
}
|
|
30
|
+
if (result !== undefined) {
|
|
31
|
+
return result
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (Array.isArray(value)) {
|
|
36
|
+
return value.map((val) => cloneDeep(val, customizer)) as unknown as T
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (typeof value === 'object' && isPlainObject(value)) {
|
|
40
|
+
const entries = Object.entries(value).map(([key, val]) => [
|
|
41
|
+
key,
|
|
42
|
+
cloneDeep(val, customizer),
|
|
43
|
+
])
|
|
44
|
+
return Object.fromEntries(entries)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return value as T
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function cloneDeepUnref<T>(obj: MaybeRefDeep<T>): T {
|
|
51
|
+
return cloneDeep(obj, (val) => {
|
|
52
|
+
if (isRef(val)) {
|
|
53
|
+
return cloneDeepUnref(unref(val))
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return undefined
|
|
57
|
+
})
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function isPlainObject(value: unknown): value is Object {
|
|
61
|
+
if (Object.prototype.toString.call(value) !== '[object Object]') {
|
|
62
|
+
return false
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const prototype = Object.getPrototypeOf(value)
|
|
66
|
+
return prototype === null || prototype === Object.prototype
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export function noop(): void {
|
|
70
|
+
return undefined
|
|
71
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { isVue2 } from 'vue-demi'
|
|
2
|
+
import { isServer } from '@tanstack/query-core'
|
|
3
|
+
import type { QueryClientConfig } from '@tanstack/query-core'
|
|
4
|
+
|
|
5
|
+
import { QueryClient } from './queryClient'
|
|
6
|
+
import { getClientKey, noop } from './utils'
|
|
7
|
+
import { setupDevtools } from './devtools/devtools'
|
|
8
|
+
import type { MaybeRefDeep } from './types'
|
|
9
|
+
|
|
10
|
+
type ClientPersister = (client: QueryClient) => [() => void, Promise<void>]
|
|
11
|
+
|
|
12
|
+
interface CommonOptions {
|
|
13
|
+
queryClientKey?: string
|
|
14
|
+
clientPersister?: ClientPersister
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
interface ConfigOptions extends CommonOptions {
|
|
18
|
+
queryClientConfig?: MaybeRefDeep<QueryClientConfig>
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
interface ClientOptions extends CommonOptions {
|
|
22
|
+
queryClient?: QueryClient
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export type VueQueryPluginOptions = ConfigOptions | ClientOptions
|
|
26
|
+
|
|
27
|
+
export const VueQueryPlugin = {
|
|
28
|
+
install: (app: any, options: VueQueryPluginOptions = {}) => {
|
|
29
|
+
const clientKey = getClientKey(options.queryClientKey)
|
|
30
|
+
let client: QueryClient
|
|
31
|
+
|
|
32
|
+
if ('queryClient' in options && options.queryClient) {
|
|
33
|
+
client = options.queryClient
|
|
34
|
+
} else {
|
|
35
|
+
const clientConfig =
|
|
36
|
+
'queryClientConfig' in options ? options.queryClientConfig : undefined
|
|
37
|
+
client = new QueryClient(clientConfig)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (!isServer) {
|
|
41
|
+
client.mount()
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
let persisterUnmount = noop
|
|
45
|
+
|
|
46
|
+
if (options.clientPersister) {
|
|
47
|
+
client.isRestoring.value = true
|
|
48
|
+
const [unmount, promise] = options.clientPersister(client)
|
|
49
|
+
persisterUnmount = unmount
|
|
50
|
+
promise.then(() => {
|
|
51
|
+
client.isRestoring.value = false
|
|
52
|
+
})
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const cleanup = () => {
|
|
56
|
+
client.unmount()
|
|
57
|
+
persisterUnmount()
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (app.onUnmount) {
|
|
61
|
+
app.onUnmount(cleanup)
|
|
62
|
+
} else {
|
|
63
|
+
const originalUnmount = app.unmount
|
|
64
|
+
app.unmount = function vueQueryUnmount() {
|
|
65
|
+
cleanup()
|
|
66
|
+
originalUnmount()
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (isVue2) {
|
|
71
|
+
app.mixin({
|
|
72
|
+
beforeCreate() {
|
|
73
|
+
// HACK: taken from provide(): https://github.com/vuejs/composition-api/blob/master/src/apis/inject.ts#L30
|
|
74
|
+
if (!this._provided) {
|
|
75
|
+
const provideCache = {}
|
|
76
|
+
Object.defineProperty(this, '_provided', {
|
|
77
|
+
get: () => provideCache,
|
|
78
|
+
set: (v) => Object.assign(provideCache, v),
|
|
79
|
+
})
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
this._provided[clientKey] = client
|
|
83
|
+
|
|
84
|
+
if (process.env.NODE_ENV === 'development') {
|
|
85
|
+
if (this === this.$root) {
|
|
86
|
+
setupDevtools(this, client)
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
})
|
|
91
|
+
} else {
|
|
92
|
+
app.provide(clientKey, client)
|
|
93
|
+
|
|
94
|
+
if (process.env.NODE_ENV === 'development') {
|
|
95
|
+
setupDevtools(app, client)
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"devtools.esm.js","sources":["../../../src/devtools/devtools.ts"],"sourcesContent":["import { setupDevtoolsPlugin } from '@vue/devtools-api'\nimport type { CustomInspectorNode } from '@vue/devtools-api'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport type { Query } from '@tanstack/query-core'\nimport type { QueryClient } from '../queryClient'\nimport {\n getQueryStateLabel,\n getQueryStatusBg,\n getQueryStatusFg,\n sortFns,\n} from './utils'\n\nconst pluginId = 'vue-query'\nconst pluginName = 'Vue Query'\n\nexport function setupDevtools(app: any, queryClient: QueryClient) {\n setupDevtoolsPlugin(\n {\n id: pluginId,\n label: pluginName,\n packageName: 'vue-query',\n homepage: 'https://tanstack.com/query/v4',\n logo: 'https://vue-query.vercel.app/vue-query.svg',\n app,\n settings: {\n baseSort: {\n type: 'choice',\n component: 'button-group',\n label: 'Sort Cache Entries',\n options: [\n {\n label: 'ASC',\n value: 1,\n },\n {\n label: 'DESC',\n value: -1,\n },\n ],\n defaultValue: 1,\n },\n sortFn: {\n type: 'choice',\n label: 'Sort Function',\n options: Object.keys(sortFns).map((key) => ({\n label: key,\n value: key,\n })),\n defaultValue: Object.keys(sortFns)[0]!,\n },\n },\n },\n (api) => {\n const queryCache = queryClient.getQueryCache()\n\n api.addInspector({\n id: pluginId,\n label: pluginName,\n icon: 'api',\n nodeActions: [\n {\n icon: 'cloud_download',\n tooltip: 'Refetch',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.fetch()\n },\n },\n {\n icon: 'alarm',\n tooltip: 'Invalidate',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryClient.invalidateQueries(query)\n },\n },\n {\n icon: 'settings_backup_restore',\n tooltip: 'Reset',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.reset()\n },\n },\n {\n icon: 'delete',\n tooltip: 'Remove',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryCache.remove(query)\n },\n },\n ],\n })\n\n api.addTimelineLayer({\n id: pluginId,\n label: pluginName,\n color: 0xffd94c,\n })\n\n queryCache.subscribe((event) => {\n api.sendInspectorTree(pluginId)\n api.sendInspectorState(pluginId)\n\n if (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n event &&\n ['queryAdded', 'queryRemoved', 'queryUpdated'].includes(event.type)\n ) {\n api.addTimelineEvent({\n layerId: pluginId,\n event: {\n title: event.type,\n subtitle: event.query.queryHash,\n time: api.now(),\n data: {\n queryHash: event.query.queryHash,\n ...event,\n },\n },\n })\n }\n })\n\n api.on.getInspectorTree((payload) => {\n if (payload.inspectorId === pluginId) {\n const queries = queryCache.getAll()\n const settings = api.getSettings()\n\n const filtered = payload.filter\n ? queries.filter(\n (item) => rankItem(item.queryHash, payload.filter).passed,\n )\n : [...queries]\n\n const sorted = filtered.sort(\n (a, b) => sortFns[settings.sortFn]!(a, b) * settings.baseSort,\n )\n\n const nodes: CustomInspectorNode[] = sorted.map((query) => {\n const stateLabel = getQueryStateLabel(query)\n\n return {\n id: query.queryHash,\n label: query.queryHash,\n tags: [\n {\n label: `${stateLabel} [${query.getObserversCount()}]`,\n textColor: getQueryStatusFg(query),\n backgroundColor: getQueryStatusBg(query),\n },\n ],\n }\n })\n payload.rootNodes = nodes\n }\n })\n\n api.on.getInspectorState((payload) => {\n if (payload.inspectorId === pluginId) {\n const query = queryCache.get(payload.nodeId)\n\n if (!query) {\n return\n }\n\n payload.state = {\n ' Query Details': [\n {\n key: 'Query key',\n value: query.queryHash,\n },\n {\n key: 'Query status',\n value: getQueryStateLabel(query),\n },\n {\n key: 'Observers',\n value: query.getObserversCount(),\n },\n {\n key: 'Last Updated',\n value: new Date(query.state.dataUpdatedAt).toLocaleTimeString(),\n },\n ],\n 'Data Explorer': [\n {\n key: 'Data',\n value: query.state.data,\n },\n ],\n 'Query Explorer': [\n {\n key: 'Query',\n value: query,\n },\n ],\n }\n }\n })\n },\n )\n}\n"],"names":["pluginId","pluginName","setupDevtools","app","queryClient","setupDevtoolsPlugin","id","label","packageName","homepage","logo","settings","baseSort","type","component","options","value","defaultValue","sortFn","Object","keys","sortFns","map","key","api","queryCache","getQueryCache","addInspector","icon","nodeActions","tooltip","action","queryHash","get","fetch","query","invalidateQueries","reset","remove","addTimelineLayer","color","subscribe","event","sendInspectorTree","sendInspectorState","includes","addTimelineEvent","layerId","title","subtitle","time","now","data","on","getInspectorTree","payload","inspectorId","queries","getAll","getSettings","filtered","filter","item","rankItem","passed","sorted","sort","a","b","nodes","stateLabel","getQueryStateLabel","tags","getObserversCount","textColor","getQueryStatusFg","backgroundColor","getQueryStatusBg","rootNodes","getInspectorState","nodeId","state","Date","dataUpdatedAt","toLocaleTimeString"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"devtools.mjs","sources":["../../../src/devtools/devtools.ts"],"sourcesContent":["import { setupDevtoolsPlugin } from '@vue/devtools-api'\nimport type { CustomInspectorNode } from '@vue/devtools-api'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport type { Query } from '@tanstack/query-core'\nimport type { QueryClient } from '../queryClient'\nimport {\n getQueryStateLabel,\n getQueryStatusBg,\n getQueryStatusFg,\n sortFns,\n} from './utils'\n\nconst pluginId = 'vue-query'\nconst pluginName = 'Vue Query'\n\nexport function setupDevtools(app: any, queryClient: QueryClient) {\n setupDevtoolsPlugin(\n {\n id: pluginId,\n label: pluginName,\n packageName: 'vue-query',\n homepage: 'https://tanstack.com/query/v4',\n logo: 'https://vue-query.vercel.app/vue-query.svg',\n app,\n settings: {\n baseSort: {\n type: 'choice',\n component: 'button-group',\n label: 'Sort Cache Entries',\n options: [\n {\n label: 'ASC',\n value: 1,\n },\n {\n label: 'DESC',\n value: -1,\n },\n ],\n defaultValue: 1,\n },\n sortFn: {\n type: 'choice',\n label: 'Sort Function',\n options: Object.keys(sortFns).map((key) => ({\n label: key,\n value: key,\n })),\n defaultValue: Object.keys(sortFns)[0]!,\n },\n },\n },\n (api) => {\n const queryCache = queryClient.getQueryCache()\n\n api.addInspector({\n id: pluginId,\n label: pluginName,\n icon: 'api',\n nodeActions: [\n {\n icon: 'cloud_download',\n tooltip: 'Refetch',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.fetch()\n },\n },\n {\n icon: 'alarm',\n tooltip: 'Invalidate',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryClient.invalidateQueries(query)\n },\n },\n {\n icon: 'settings_backup_restore',\n tooltip: 'Reset',\n action: (queryHash: string) => {\n queryCache.get(queryHash)?.reset()\n },\n },\n {\n icon: 'delete',\n tooltip: 'Remove',\n action: (queryHash: string) => {\n const query = queryCache.get(queryHash) as Query\n queryCache.remove(query)\n },\n },\n ],\n })\n\n api.addTimelineLayer({\n id: pluginId,\n label: pluginName,\n color: 0xffd94c,\n })\n\n queryCache.subscribe((event) => {\n api.sendInspectorTree(pluginId)\n api.sendInspectorState(pluginId)\n\n if (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n event &&\n ['queryAdded', 'queryRemoved', 'queryUpdated'].includes(event.type)\n ) {\n api.addTimelineEvent({\n layerId: pluginId,\n event: {\n title: event.type,\n subtitle: event.query.queryHash,\n time: api.now(),\n data: {\n queryHash: event.query.queryHash,\n ...event,\n },\n },\n })\n }\n })\n\n api.on.getInspectorTree((payload) => {\n if (payload.inspectorId === pluginId) {\n const queries = queryCache.getAll()\n const settings = api.getSettings()\n\n const filtered = payload.filter\n ? queries.filter(\n (item) => rankItem(item.queryHash, payload.filter).passed,\n )\n : [...queries]\n\n const sorted = filtered.sort(\n (a, b) => sortFns[settings.sortFn]!(a, b) * settings.baseSort,\n )\n\n const nodes: CustomInspectorNode[] = sorted.map((query) => {\n const stateLabel = getQueryStateLabel(query)\n\n return {\n id: query.queryHash,\n label: query.queryHash,\n tags: [\n {\n label: `${stateLabel} [${query.getObserversCount()}]`,\n textColor: getQueryStatusFg(query),\n backgroundColor: getQueryStatusBg(query),\n },\n ],\n }\n })\n payload.rootNodes = nodes\n }\n })\n\n api.on.getInspectorState((payload) => {\n if (payload.inspectorId === pluginId) {\n const query = queryCache.get(payload.nodeId)\n\n if (!query) {\n return\n }\n\n payload.state = {\n ' Query Details': [\n {\n key: 'Query key',\n value: query.queryHash,\n },\n {\n key: 'Query status',\n value: getQueryStateLabel(query),\n },\n {\n key: 'Observers',\n value: query.getObserversCount(),\n },\n {\n key: 'Last Updated',\n value: new Date(query.state.dataUpdatedAt).toLocaleTimeString(),\n },\n ],\n 'Data Explorer': [\n {\n key: 'Data',\n value: query.state.data,\n },\n ],\n 'Query Explorer': [\n {\n key: 'Query',\n value: query,\n },\n ],\n }\n }\n })\n },\n )\n}\n"],"names":["pluginId","pluginName","setupDevtools","app","queryClient","setupDevtoolsPlugin","id","label","packageName","homepage","logo","settings","baseSort","type","component","options","value","defaultValue","sortFn","Object","keys","sortFns","map","key","api","queryCache","getQueryCache","addInspector","icon","nodeActions","tooltip","action","queryHash","get","fetch","query","invalidateQueries","reset","remove","addTimelineLayer","color","subscribe","event","sendInspectorTree","sendInspectorState","includes","addTimelineEvent","layerId","title","subtitle","time","now","data","on","getInspectorTree","payload","inspectorId","queries","getAll","getSettings","filtered","filter","item","rankItem","passed","sorted","sort","a","b","nodes","stateLabel","getQueryStateLabel","tags","getObserversCount","textColor","getQueryStatusFg","backgroundColor","getQueryStatusBg","rootNodes","getInspectorState","nodeId","state","Date","dataUpdatedAt","toLocaleTimeString"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.esm.js","sources":["../../../src/devtools/utils.ts"],"sourcesContent":["import type { Query } from '@tanstack/query-core'\n\ntype SortFn = (a: Query, b: Query) => number\n\n// eslint-disable-next-line no-shadow\nenum QueryState {\n Fetching = 0,\n Fresh,\n Stale,\n Inactive,\n Paused,\n}\n\nexport function getQueryState(query: Query): QueryState {\n if (query.state.fetchStatus === 'fetching') {\n return QueryState.Fetching\n }\n if (query.state.fetchStatus === 'paused') {\n return QueryState.Paused\n }\n if (!query.getObserversCount()) {\n return QueryState.Inactive\n }\n if (query.isStale()) {\n return QueryState.Stale\n }\n\n return QueryState.Fresh\n}\n\nexport function getQueryStateLabel(query: Query): string {\n const queryState = getQueryState(query)\n\n if (queryState === QueryState.Fetching) {\n return 'fetching'\n }\n if (queryState === QueryState.Paused) {\n return 'paused'\n }\n if (queryState === QueryState.Stale) {\n return 'stale'\n }\n if (queryState === QueryState.Inactive) {\n return 'inactive'\n }\n\n return 'fresh'\n}\n\nexport function getQueryStatusFg(query: Query): number {\n const queryState = getQueryState(query)\n\n if (queryState === QueryState.Stale) {\n return 0x000000\n }\n\n return 0xffffff\n}\n\nexport function getQueryStatusBg(query: Query): number {\n const queryState = getQueryState(query)\n\n if (queryState === QueryState.Fetching) {\n return 0x006bff\n }\n if (queryState === QueryState.Paused) {\n return 0x8c49eb\n }\n if (queryState === QueryState.Stale) {\n return 0xffb200\n }\n if (queryState === QueryState.Inactive) {\n return 0x3f4e60\n }\n\n return 0x008327\n}\n\nconst queryHashSort: SortFn = (a, b) => a.queryHash.localeCompare(b.queryHash)\n\nconst dateSort: SortFn = (a, b) =>\n a.state.dataUpdatedAt < b.state.dataUpdatedAt ? 1 : -1\n\nconst statusAndDateSort: SortFn = (a, b) => {\n if (getQueryState(a) === getQueryState(b)) {\n return dateSort(a, b)\n }\n\n return getQueryState(a) > getQueryState(b) ? 1 : -1\n}\n\nexport const sortFns: Record<string, SortFn> = {\n 'Status > Last Updated': statusAndDateSort,\n 'Query Hash': queryHashSort,\n 'Last Updated': dateSort,\n}\n"],"names":["QueryState","getQueryState","query","state","fetchStatus","Fetching","Paused","getObserversCount","Inactive","isStale","Stale","Fresh","getQueryStateLabel","queryState","getQueryStatusFg","getQueryStatusBg","queryHashSort","a","b","queryHash","localeCompare","dateSort","dataUpdatedAt","statusAndDateSort","sortFns"],"mappings":"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"}
|
package/build/lib/index.esm.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export * from '@tanstack/query-core';
|
|
2
|
-
export { useQueryClient } from './useQueryClient.esm.js';
|
|
3
|
-
export { VueQueryPlugin } from './vueQueryPlugin.esm.js';
|
|
4
|
-
export { QueryClient } from './queryClient.esm.js';
|
|
5
|
-
export { QueryCache } from './queryCache.esm.js';
|
|
6
|
-
export { MutationCache } from './mutationCache.esm.js';
|
|
7
|
-
export { useQuery } from './useQuery.esm.js';
|
|
8
|
-
export { useQueries } from './useQueries.esm.js';
|
|
9
|
-
export { useInfiniteQuery } from './useInfiniteQuery.esm.js';
|
|
10
|
-
export { useMutation } from './useMutation.esm.js';
|
|
11
|
-
export { useIsFetching } from './useIsFetching.esm.js';
|
|
12
|
-
export { useIsMutating, useMutationState } from './useMutationState.esm.js';
|
|
13
|
-
export { VUE_QUERY_CLIENT } from './utils.esm.js';
|
|
14
|
-
//# sourceMappingURL=index.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
|
package/build/lib/index.mjs
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export * from '@tanstack/query-core';
|
|
2
|
-
export { useQueryClient } from './useQueryClient.mjs';
|
|
3
|
-
export { VueQueryPlugin } from './vueQueryPlugin.mjs';
|
|
4
|
-
export { QueryClient } from './queryClient.mjs';
|
|
5
|
-
export { QueryCache } from './queryCache.mjs';
|
|
6
|
-
export { MutationCache } from './mutationCache.mjs';
|
|
7
|
-
export { useQuery } from './useQuery.mjs';
|
|
8
|
-
export { useQueries } from './useQueries.mjs';
|
|
9
|
-
export { useInfiniteQuery } from './useInfiniteQuery.mjs';
|
|
10
|
-
export { useMutation } from './useMutation.mjs';
|
|
11
|
-
export { useIsFetching } from './useIsFetching.mjs';
|
|
12
|
-
export { useIsMutating, useMutationState } from './useMutationState.mjs';
|
|
13
|
-
export { VUE_QUERY_CLIENT } from './utils.mjs';
|
|
14
|
-
//# sourceMappingURL=index.mjs.map
|
package/build/lib/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mutationCache.esm.js","sources":["../../src/mutationCache.ts"],"sourcesContent":["import { MutationCache as MC } from '@tanstack/query-core'\nimport type {\n Mutation,\n MutationFilters,\n DefaultError,\n} from '@tanstack/query-core'\nimport type { MaybeRefDeep } from './types'\nimport { cloneDeepUnref } from './utils'\n\nexport class MutationCache extends MC {\n find<\n TData = unknown,\n TError = DefaultError,\n TVariables = any,\n TContext = unknown,\n >(\n filters: MaybeRefDeep<MutationFilters>,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n return super.find(cloneDeepUnref(filters))\n }\n\n findAll(filters: MaybeRefDeep<MutationFilters> = {}): Mutation[] {\n return super.findAll(cloneDeepUnref(filters))\n }\n}\n"],"names":["MutationCache","MC","find","filters","cloneDeepUnref","findAll"],"mappings":";;;AASO,MAAMA,aAAa,SAASC,eAAE,CAAC;EACpCC,IAAI,CAMFC,OAAsC,EACqB;IAC3D,OAAO,KAAK,CAACD,IAAI,CAACE,cAAc,CAACD,OAAO,CAAC,CAAC,CAAA;AAC5C,GAAA;AAEAE,EAAAA,OAAO,CAACF,OAAsC,GAAG,EAAE,EAAc;IAC/D,OAAO,KAAK,CAACE,OAAO,CAACD,cAAc,CAACD,OAAO,CAAC,CAAC,CAAA;AAC/C,GAAA;AACF;;;;"}
|