@tanstack/solid-query 4.24.10 → 5.0.0-alpha.1
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/build/cjs/index.js +300 -0
- package/build/cjs/index.js.map +1 -0
- package/build/esm/index.js +285 -0
- package/build/esm/index.js.map +1 -0
- package/build/source/QueryClientProvider.jsx +21 -0
- package/build/source/__tests__/QueryClientProvider.test.jsx +120 -0
- package/build/{solid → source}/__tests__/createInfiniteQuery.test.jsx +228 -372
- package/build/{solid → source}/__tests__/createMutation.test.jsx +174 -165
- package/build/{solid → source}/__tests__/createQueries.test.jsx +86 -367
- package/build/{solid → source}/__tests__/createQuery.test.jsx +991 -943
- package/build/{solid → source}/__tests__/createQuery.types.test.jsx +35 -24
- package/build/{solid → source}/__tests__/suspense.test.jsx +177 -148
- package/build/{solid → source}/__tests__/transition.test.jsx +7 -4
- package/build/{solid → source}/__tests__/useIsFetching.test.jsx +68 -85
- package/build/{solid → source}/__tests__/useIsMutating.test.jsx +78 -93
- package/build/{solid → source}/__tests__/utils.jsx +3 -9
- package/build/source/createBaseQuery.js +147 -0
- package/build/source/createInfiniteQuery.js +8 -0
- package/build/{solid → source}/createMutation.js +7 -9
- package/build/source/createQueries.js +32 -0
- package/build/source/createQuery.js +6 -0
- package/build/{solid → source}/index.js +5 -3
- package/build/source/setBatchUpdatesFn.js +3 -0
- package/build/source/useIsFetching.js +12 -0
- package/build/source/useIsMutating.js +12 -0
- package/build/source/utils.js +7 -0
- package/build/types/QueryClientProvider.d.ts +9 -0
- package/build/{lib → types}/__tests__/utils.d.ts +3 -8
- package/build/types/createBaseQuery.d.ts +4 -0
- package/build/types/createInfiniteQuery.d.ts +3 -0
- package/build/types/createMutation.d.ts +3 -0
- package/build/{lib → types}/createQueries.d.ts +10 -8
- package/build/types/createQuery.d.ts +11 -0
- package/build/{lib → types}/index.d.ts +4 -3
- package/build/types/setBatchUpdatesFn.d.ts +1 -0
- package/build/types/types.d.ts +33 -0
- package/build/types/useIsFetching.d.ts +8 -0
- package/build/types/useIsMutating.d.ts +8 -0
- package/build/types/utils.d.ts +1 -0
- package/build/umd/index.js +2 -0
- package/build/umd/index.js.map +1 -0
- package/package.json +25 -17
- package/src/QueryClientProvider.tsx +17 -86
- package/src/__tests__/QueryClientProvider.test.tsx +37 -140
- package/src/__tests__/createInfiniteQuery.test.tsx +277 -508
- package/src/__tests__/createMutation.test.tsx +177 -225
- package/src/__tests__/createQueries.test.tsx +180 -528
- package/src/__tests__/createQuery.test.tsx +970 -1200
- package/src/__tests__/createQuery.types.test.tsx +30 -25
- package/src/__tests__/suspense.test.tsx +141 -178
- package/src/__tests__/transition.test.tsx +7 -4
- package/src/__tests__/useIsFetching.test.tsx +77 -122
- package/src/__tests__/useIsMutating.test.tsx +83 -128
- package/src/__tests__/utils.tsx +4 -11
- package/src/createBaseQuery.ts +148 -60
- package/src/createInfiniteQuery.ts +16 -94
- package/src/createMutation.ts +9 -63
- package/src/createQueries.ts +44 -55
- package/src/createQuery.ts +42 -127
- package/src/index.ts +6 -3
- package/src/setBatchUpdatesFn.ts +4 -0
- package/src/types.ts +81 -75
- package/src/useIsFetching.ts +12 -44
- package/src/useIsMutating.ts +13 -29
- package/src/utils.ts +5 -79
- package/build/lib/QueryClientProvider.d.ts +0 -24
- package/build/lib/QueryClientProvider.esm.js +0 -74
- package/build/lib/QueryClientProvider.esm.js.map +0 -1
- package/build/lib/QueryClientProvider.js +0 -80
- package/build/lib/QueryClientProvider.js.map +0 -1
- package/build/lib/QueryClientProvider.mjs +0 -74
- package/build/lib/QueryClientProvider.mjs.map +0 -1
- package/build/lib/createBaseQuery.d.ts +0 -4
- package/build/lib/createBaseQuery.esm.js +0 -93
- package/build/lib/createBaseQuery.esm.js.map +0 -1
- package/build/lib/createBaseQuery.js +0 -97
- package/build/lib/createBaseQuery.js.map +0 -1
- package/build/lib/createBaseQuery.mjs +0 -93
- package/build/lib/createBaseQuery.mjs.map +0 -1
- package/build/lib/createInfiniteQuery.d.ts +0 -5
- package/build/lib/createInfiniteQuery.esm.js +0 -20
- package/build/lib/createInfiniteQuery.esm.js.map +0 -1
- package/build/lib/createInfiniteQuery.js +0 -24
- package/build/lib/createInfiniteQuery.js.map +0 -1
- package/build/lib/createInfiniteQuery.mjs +0 -20
- package/build/lib/createInfiniteQuery.mjs.map +0 -1
- package/build/lib/createMutation.d.ts +0 -6
- package/build/lib/createMutation.esm.js +0 -45
- package/build/lib/createMutation.esm.js.map +0 -1
- package/build/lib/createMutation.js +0 -49
- package/build/lib/createMutation.js.map +0 -1
- package/build/lib/createMutation.mjs +0 -45
- package/build/lib/createMutation.mjs.map +0 -1
- package/build/lib/createQueries.esm.js +0 -54
- package/build/lib/createQueries.esm.js.map +0 -1
- package/build/lib/createQueries.js +0 -58
- package/build/lib/createQueries.js.map +0 -1
- package/build/lib/createQueries.mjs +0 -54
- package/build/lib/createQueries.mjs.map +0 -1
- package/build/lib/createQuery.d.ts +0 -23
- package/build/lib/createQuery.esm.js +0 -25
- package/build/lib/createQuery.esm.js.map +0 -1
- package/build/lib/createQuery.js +0 -29
- package/build/lib/createQuery.js.map +0 -1
- package/build/lib/createQuery.mjs +0 -25
- package/build/lib/createQuery.mjs.map +0 -1
- package/build/lib/index.esm.js +0 -9
- package/build/lib/index.esm.js.map +0 -1
- package/build/lib/index.js +0 -31
- package/build/lib/index.js.map +0 -1
- package/build/lib/index.mjs +0 -9
- package/build/lib/index.mjs.map +0 -1
- package/build/lib/types.d.ts +0 -47
- package/build/lib/useIsFetching.d.ts +0 -7
- package/build/lib/useIsFetching.esm.js +0 -29
- package/build/lib/useIsFetching.esm.js.map +0 -1
- package/build/lib/useIsFetching.js +0 -33
- package/build/lib/useIsFetching.js.map +0 -1
- package/build/lib/useIsFetching.mjs +0 -29
- package/build/lib/useIsFetching.mjs.map +0 -1
- package/build/lib/useIsMutating.d.ts +0 -8
- package/build/lib/useIsMutating.esm.js +0 -22
- package/build/lib/useIsMutating.esm.js.map +0 -1
- package/build/lib/useIsMutating.js +0 -26
- package/build/lib/useIsMutating.js.map +0 -1
- package/build/lib/useIsMutating.mjs +0 -22
- package/build/lib/useIsMutating.mjs.map +0 -1
- package/build/lib/utils.d.ts +0 -14
- package/build/lib/utils.esm.js +0 -63
- package/build/lib/utils.esm.js.map +0 -1
- package/build/lib/utils.js +0 -72
- package/build/lib/utils.js.map +0 -1
- package/build/lib/utils.mjs +0 -63
- package/build/lib/utils.mjs.map +0 -1
- package/build/solid/QueryClientProvider.jsx +0 -49
- package/build/solid/__tests__/QueryClientProvider.test.jsx +0 -185
- package/build/solid/createBaseQuery.js +0 -81
- package/build/solid/createInfiniteQuery.js +0 -16
- package/build/solid/createQueries.js +0 -39
- package/build/solid/createQuery.js +0 -16
- package/build/solid/useIsFetching.js +0 -23
- package/build/solid/useIsMutating.js +0 -16
- package/build/solid/utils.js +0 -45
- package/build/umd/index.development.js +0 -3577
- 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
- /package/build/{solid → source}/types.js +0 -0
- /package/build/{lib → types}/__tests__/QueryClientProvider.test.d.ts +0 -0
- /package/build/{lib → types}/__tests__/createInfiniteQuery.test.d.ts +0 -0
- /package/build/{lib → types}/__tests__/createMutation.test.d.ts +0 -0
- /package/build/{lib → types}/__tests__/createQueries.test.d.ts +0 -0
- /package/build/{lib → types}/__tests__/createQuery.test.d.ts +0 -0
- /package/build/{lib → types}/__tests__/createQuery.types.test.d.ts +0 -0
- /package/build/{lib → types}/__tests__/suspense.test.d.ts +0 -0
- /package/build/{lib → types}/__tests__/transition.test.d.ts +0 -0
- /package/build/{lib → types}/__tests__/useIsFetching.test.d.ts +0 -0
- /package/build/{lib → types}/__tests__/useIsMutating.test.d.ts +0 -0
package/src/createQuery.ts
CHANGED
|
@@ -1,157 +1,72 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type {
|
|
2
|
+
QueryClient,
|
|
3
|
+
QueryKey,
|
|
4
|
+
RegisteredError,
|
|
5
|
+
} from '@tanstack/query-core'
|
|
2
6
|
import { QueryObserver } from '@tanstack/query-core'
|
|
7
|
+
import { createMemo } from 'solid-js'
|
|
8
|
+
import { createBaseQuery } from './createBaseQuery'
|
|
3
9
|
import type {
|
|
4
10
|
CreateQueryOptions,
|
|
5
11
|
CreateQueryResult,
|
|
6
12
|
DefinedCreateQueryResult,
|
|
7
|
-
|
|
13
|
+
FunctionedParams,
|
|
14
|
+
SolidQueryOptions,
|
|
8
15
|
} from './types'
|
|
9
|
-
import { createComputed } from 'solid-js'
|
|
10
|
-
import { createStore } from 'solid-js/store'
|
|
11
|
-
import { parseQueryArgs } from './utils'
|
|
12
|
-
import { createBaseQuery } from './createBaseQuery'
|
|
13
16
|
|
|
14
|
-
|
|
15
|
-
// 1. createQuery(options: CreateQueryOptions)
|
|
16
|
-
// 2. createQuery(querykey: () => Serializable[], options: CreateQueryOptions)
|
|
17
|
-
// 3. createQuery(querykey: () => Serializable[], queryFunc: Fetcher Function, options: CreateQueryOptions)
|
|
18
|
-
// 4. The fourth overload is a combination of all three function params
|
|
19
|
-
export function createQuery<
|
|
17
|
+
type UndefinedInitialDataOptions<
|
|
20
18
|
TQueryFnData = unknown,
|
|
21
|
-
TError =
|
|
19
|
+
TError = RegisteredError,
|
|
22
20
|
TData = TQueryFnData,
|
|
23
|
-
TQueryKey extends
|
|
24
|
-
>
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
): CreateQueryResult<TData, TError>
|
|
32
|
-
export function createQuery<
|
|
21
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
22
|
+
> = FunctionedParams<
|
|
23
|
+
SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
|
|
24
|
+
initialData?: undefined
|
|
25
|
+
}
|
|
26
|
+
>
|
|
27
|
+
|
|
28
|
+
type DefinedInitialDataOptions<
|
|
33
29
|
TQueryFnData = unknown,
|
|
34
|
-
TError =
|
|
30
|
+
TError = RegisteredError,
|
|
35
31
|
TData = TQueryFnData,
|
|
36
|
-
TQueryKey extends
|
|
37
|
-
>
|
|
38
|
-
|
|
39
|
-
CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
40
|
-
'initialData'
|
|
41
|
-
> & {
|
|
32
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
33
|
+
> = FunctionedParams<
|
|
34
|
+
SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
|
|
42
35
|
initialData: TQueryFnData | (() => TQueryFnData)
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
TQueryFnData = unknown,
|
|
47
|
-
TError = unknown,
|
|
48
|
-
TData = TQueryFnData,
|
|
49
|
-
TQueryKey extends SolidQueryKey = SolidQueryKey,
|
|
50
|
-
>(
|
|
51
|
-
options: CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
52
|
-
): CreateQueryResult<TData, TError>
|
|
53
|
-
export function createQuery<
|
|
54
|
-
TQueryFnData = unknown,
|
|
55
|
-
TError = unknown,
|
|
56
|
-
TData = TQueryFnData,
|
|
57
|
-
TQueryKey extends SolidQueryKey = SolidQueryKey,
|
|
58
|
-
>(
|
|
59
|
-
queryKey: TQueryKey,
|
|
60
|
-
options?: Omit<
|
|
61
|
-
CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
62
|
-
'queryKey' | 'initialData'
|
|
63
|
-
> & { initialData?: () => undefined },
|
|
64
|
-
): CreateQueryResult<TData, TError>
|
|
65
|
-
export function createQuery<
|
|
66
|
-
TQueryFnData = unknown,
|
|
67
|
-
TError = unknown,
|
|
68
|
-
TData = TQueryFnData,
|
|
69
|
-
TQueryKey extends SolidQueryKey = SolidQueryKey,
|
|
70
|
-
>(
|
|
71
|
-
queryKey: TQueryKey,
|
|
72
|
-
options?: Omit<
|
|
73
|
-
CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
74
|
-
'queryKey' | 'initialData'
|
|
75
|
-
> & { initialData: TQueryFnData | (() => TQueryFnData) },
|
|
76
|
-
): DefinedCreateQueryResult<TData, TError>
|
|
77
|
-
export function createQuery<
|
|
78
|
-
TQueryFnData = unknown,
|
|
79
|
-
TError = unknown,
|
|
80
|
-
TData = TQueryFnData,
|
|
81
|
-
TQueryKey extends SolidQueryKey = SolidQueryKey,
|
|
82
|
-
>(
|
|
83
|
-
queryKey: TQueryKey,
|
|
84
|
-
options?: Omit<
|
|
85
|
-
CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
86
|
-
'queryKey'
|
|
87
|
-
>,
|
|
88
|
-
): CreateQueryResult<TData, TError>
|
|
36
|
+
}
|
|
37
|
+
>
|
|
38
|
+
|
|
89
39
|
export function createQuery<
|
|
90
40
|
TQueryFnData = unknown,
|
|
91
|
-
TError =
|
|
41
|
+
TError = RegisteredError,
|
|
92
42
|
TData = TQueryFnData,
|
|
93
|
-
TQueryKey extends
|
|
43
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
94
44
|
>(
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
queryFn: QueryFunction<TQueryFnData, ReturnType<TQueryKey>>,
|
|
98
|
-
options?: Omit<
|
|
99
|
-
CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
100
|
-
'queryKey' | 'queryFn' | 'initialData'
|
|
101
|
-
> & { initialData?: () => undefined },
|
|
45
|
+
options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
46
|
+
queryClient?: () => QueryClient,
|
|
102
47
|
): CreateQueryResult<TData, TError>
|
|
48
|
+
|
|
103
49
|
export function createQuery<
|
|
104
50
|
TQueryFnData = unknown,
|
|
105
|
-
TError =
|
|
51
|
+
TError = RegisteredError,
|
|
106
52
|
TData = TQueryFnData,
|
|
107
|
-
TQueryKey extends
|
|
53
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
108
54
|
>(
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
options?: Omit<
|
|
112
|
-
CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
113
|
-
'queryKey' | 'queryFn' | 'initialData'
|
|
114
|
-
> & { initialData: TQueryFnData | (() => TQueryFnData) },
|
|
55
|
+
options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
56
|
+
queryClient?: () => QueryClient,
|
|
115
57
|
): DefinedCreateQueryResult<TData, TError>
|
|
116
|
-
export function createQuery<
|
|
117
|
-
TQueryFnData = unknown,
|
|
118
|
-
TError = unknown,
|
|
119
|
-
TData = TQueryFnData,
|
|
120
|
-
TQueryKey extends SolidQueryKey = SolidQueryKey,
|
|
121
|
-
>(
|
|
122
|
-
queryKey: TQueryKey,
|
|
123
|
-
queryFn: QueryFunction<TQueryFnData, ReturnType<TQueryKey>>,
|
|
124
|
-
options?: Omit<
|
|
125
|
-
CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
126
|
-
'queryKey' | 'queryFn'
|
|
127
|
-
>,
|
|
128
|
-
): CreateQueryResult<TData, TError>
|
|
129
58
|
export function createQuery<
|
|
130
59
|
TQueryFnData,
|
|
131
|
-
TError,
|
|
60
|
+
TError = RegisteredError,
|
|
132
61
|
TData = TQueryFnData,
|
|
133
|
-
TQueryKey extends
|
|
62
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
134
63
|
>(
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
| CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
139
|
-
arg3?: CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
140
|
-
): CreateQueryResult<TData, TError> {
|
|
141
|
-
// The parseQuery Args functions helps normalize the arguments into the correct form.
|
|
142
|
-
// Whatever the parameters are, they are normalized into the correct form.
|
|
143
|
-
const [parsedOptions, setParsedOptions] = createStore(
|
|
144
|
-
parseQueryArgs(arg1, arg2, arg3),
|
|
145
|
-
)
|
|
146
|
-
|
|
147
|
-
// Watch for changes in the options and update the parsed options.
|
|
148
|
-
createComputed(() => {
|
|
149
|
-
const newParsedOptions = parseQueryArgs(arg1, arg2, arg3)
|
|
150
|
-
setParsedOptions(newParsedOptions)
|
|
151
|
-
})
|
|
152
|
-
|
|
64
|
+
options: CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
65
|
+
queryClient?: () => QueryClient,
|
|
66
|
+
) {
|
|
153
67
|
return createBaseQuery(
|
|
154
|
-
|
|
68
|
+
createMemo(() => options()),
|
|
155
69
|
QueryObserver,
|
|
70
|
+
queryClient,
|
|
156
71
|
)
|
|
157
72
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
/* istanbul ignore file */
|
|
2
2
|
|
|
3
|
+
// Side Effects
|
|
4
|
+
import './setBatchUpdatesFn'
|
|
5
|
+
|
|
3
6
|
// Re-export core
|
|
4
7
|
export * from '@tanstack/query-core'
|
|
5
8
|
|
|
@@ -7,13 +10,13 @@ export * from '@tanstack/query-core'
|
|
|
7
10
|
export * from './types'
|
|
8
11
|
export { createQuery } from './createQuery'
|
|
9
12
|
export {
|
|
10
|
-
|
|
13
|
+
QueryClientContext,
|
|
11
14
|
QueryClientProvider,
|
|
12
15
|
useQueryClient,
|
|
13
16
|
} from './QueryClientProvider'
|
|
14
17
|
export type { QueryClientProviderProps } from './QueryClientProvider'
|
|
15
18
|
export { useIsFetching } from './useIsFetching'
|
|
16
|
-
export { useIsMutating } from './useIsMutating'
|
|
17
|
-
export { createMutation } from './createMutation'
|
|
18
19
|
export { createInfiniteQuery } from './createInfiniteQuery'
|
|
20
|
+
export { createMutation } from './createMutation'
|
|
21
|
+
export { useIsMutating } from './useIsMutating'
|
|
19
22
|
export { createQueries } from './createQueries'
|
package/src/types.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/* istanbul ignore file */
|
|
2
2
|
|
|
3
|
-
import type { Context } from 'solid-js'
|
|
4
3
|
import type {
|
|
5
|
-
QueryClient,
|
|
6
4
|
QueryKey,
|
|
7
5
|
QueryObserverOptions,
|
|
8
6
|
QueryObserverResult,
|
|
@@ -12,120 +10,136 @@ import type {
|
|
|
12
10
|
DefinedQueryObserverResult,
|
|
13
11
|
InfiniteQueryObserverOptions,
|
|
14
12
|
InfiniteQueryObserverResult,
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
WithRequired,
|
|
14
|
+
RegisteredError,
|
|
17
15
|
} from '@tanstack/query-core'
|
|
18
16
|
|
|
19
|
-
export
|
|
20
|
-
/**
|
|
21
|
-
* Use this to pass your Solid Query context. Otherwise, `defaultContext` will be used.
|
|
22
|
-
*/
|
|
23
|
-
context?: Context<QueryClient | undefined>
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/* --- Create Query and Create Base Query Types --- */
|
|
27
|
-
export type SolidQueryKey = () => readonly unknown[]
|
|
17
|
+
export type FunctionedParams<T> = () => T
|
|
28
18
|
|
|
29
19
|
export interface CreateBaseQueryOptions<
|
|
30
20
|
TQueryFnData = unknown,
|
|
31
|
-
TError =
|
|
21
|
+
TError = RegisteredError,
|
|
32
22
|
TData = TQueryFnData,
|
|
33
23
|
TQueryData = TQueryFnData,
|
|
34
24
|
TQueryKey extends QueryKey = QueryKey,
|
|
35
|
-
> extends
|
|
36
|
-
QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey
|
|
25
|
+
> extends WithRequired<
|
|
26
|
+
QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>,
|
|
27
|
+
'queryKey'
|
|
28
|
+
> {
|
|
29
|
+
deferStream?: boolean
|
|
30
|
+
}
|
|
37
31
|
|
|
38
|
-
export interface
|
|
32
|
+
export interface SolidQueryOptions<
|
|
39
33
|
TQueryFnData = unknown,
|
|
40
|
-
TError =
|
|
34
|
+
TError = RegisteredError,
|
|
41
35
|
TData = TQueryFnData,
|
|
42
|
-
TQueryKey extends
|
|
43
|
-
> extends
|
|
36
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
37
|
+
> extends WithRequired<
|
|
44
38
|
CreateBaseQueryOptions<
|
|
45
39
|
TQueryFnData,
|
|
46
40
|
TError,
|
|
47
41
|
TData,
|
|
48
42
|
TQueryFnData,
|
|
49
|
-
|
|
43
|
+
TQueryKey
|
|
50
44
|
>,
|
|
51
45
|
'queryKey'
|
|
52
|
-
> {
|
|
53
|
-
|
|
54
|
-
|
|
46
|
+
> {}
|
|
47
|
+
|
|
48
|
+
export type CreateQueryOptions<
|
|
49
|
+
TQueryFnData = unknown,
|
|
50
|
+
TError = RegisteredError,
|
|
51
|
+
TData = TQueryFnData,
|
|
52
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
53
|
+
> = FunctionedParams<SolidQueryOptions<TQueryFnData, TError, TData, TQueryKey>>
|
|
54
|
+
|
|
55
|
+
/* --- Create Query and Create Base Query Types --- */
|
|
55
56
|
|
|
56
57
|
export type CreateBaseQueryResult<
|
|
57
58
|
TData = unknown,
|
|
58
|
-
TError =
|
|
59
|
+
TError = RegisteredError,
|
|
59
60
|
> = QueryObserverResult<TData, TError>
|
|
60
61
|
|
|
61
62
|
export type CreateQueryResult<
|
|
62
63
|
TData = unknown,
|
|
63
|
-
TError =
|
|
64
|
+
TError = RegisteredError,
|
|
64
65
|
> = CreateBaseQueryResult<TData, TError>
|
|
65
66
|
|
|
66
67
|
export type DefinedCreateBaseQueryResult<
|
|
67
68
|
TData = unknown,
|
|
68
|
-
TError =
|
|
69
|
+
TError = RegisteredError,
|
|
69
70
|
> = DefinedQueryObserverResult<TData, TError>
|
|
70
71
|
|
|
71
72
|
export type DefinedCreateQueryResult<
|
|
72
73
|
TData = unknown,
|
|
73
|
-
TError =
|
|
74
|
+
TError = RegisteredError,
|
|
74
75
|
> = DefinedCreateBaseQueryResult<TData, TError>
|
|
75
76
|
|
|
76
|
-
export type ParseQueryArgs<
|
|
77
|
-
TOptions extends Omit<
|
|
78
|
-
QueryOptions<any, any, any, ReturnType<TQueryKey>>,
|
|
79
|
-
'queryKey'
|
|
80
|
-
> & {
|
|
81
|
-
queryKey?: TQueryKey
|
|
82
|
-
},
|
|
83
|
-
TQueryKey extends () => readonly unknown[] = SolidQueryKey,
|
|
84
|
-
> = TOptions['queryKey'] extends () => infer R
|
|
85
|
-
? Omit<TOptions, 'queryKey'> & { queryKey?: R }
|
|
86
|
-
: TOptions
|
|
87
|
-
|
|
88
77
|
/* --- Create Infinite Queries Types --- */
|
|
89
|
-
export interface
|
|
78
|
+
export interface SolidInfiniteQueryOptions<
|
|
90
79
|
TQueryFnData = unknown,
|
|
91
|
-
TError =
|
|
80
|
+
TError = RegisteredError,
|
|
92
81
|
TData = TQueryFnData,
|
|
93
82
|
TQueryData = TQueryFnData,
|
|
94
|
-
TQueryKey extends
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
83
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
84
|
+
TPageParam = unknown,
|
|
85
|
+
> extends Omit<
|
|
86
|
+
InfiniteQueryObserverOptions<
|
|
87
|
+
TQueryFnData,
|
|
88
|
+
TError,
|
|
89
|
+
TData,
|
|
90
|
+
TQueryData,
|
|
91
|
+
TQueryKey,
|
|
92
|
+
TPageParam
|
|
93
|
+
>,
|
|
94
|
+
'queryKey'
|
|
95
|
+
> {
|
|
96
|
+
queryKey: TQueryKey
|
|
97
|
+
deferStream?: boolean
|
|
107
98
|
}
|
|
108
99
|
|
|
100
|
+
export type CreateInfiniteQueryOptions<
|
|
101
|
+
TQueryFnData = unknown,
|
|
102
|
+
TError = RegisteredError,
|
|
103
|
+
TData = TQueryFnData,
|
|
104
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
105
|
+
TPageParam = unknown,
|
|
106
|
+
> = FunctionedParams<
|
|
107
|
+
SolidInfiniteQueryOptions<
|
|
108
|
+
TQueryFnData,
|
|
109
|
+
TError,
|
|
110
|
+
TData,
|
|
111
|
+
TQueryFnData,
|
|
112
|
+
TQueryKey,
|
|
113
|
+
TPageParam
|
|
114
|
+
>
|
|
115
|
+
>
|
|
116
|
+
|
|
109
117
|
export type CreateInfiniteQueryResult<
|
|
110
118
|
TData = unknown,
|
|
111
|
-
TError =
|
|
119
|
+
TError = RegisteredError,
|
|
112
120
|
> = InfiniteQueryObserverResult<TData, TError>
|
|
113
121
|
|
|
114
122
|
/* --- Create Mutation Types --- */
|
|
115
|
-
export interface
|
|
123
|
+
export interface SolidMutationOptions<
|
|
116
124
|
TData = unknown,
|
|
117
|
-
TError =
|
|
125
|
+
TError = RegisteredError,
|
|
118
126
|
TVariables = void,
|
|
119
127
|
TContext = unknown,
|
|
120
|
-
> extends
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
128
|
+
> extends Omit<
|
|
129
|
+
MutationObserverOptions<TData, TError, TVariables, TContext>,
|
|
130
|
+
'_defaulted' | 'variables'
|
|
131
|
+
> {}
|
|
132
|
+
|
|
133
|
+
export type CreateMutationOptions<
|
|
134
|
+
TData = unknown,
|
|
135
|
+
TError = RegisteredError,
|
|
136
|
+
TVariables = void,
|
|
137
|
+
TContext = unknown,
|
|
138
|
+
> = FunctionedParams<SolidMutationOptions<TData, TError, TVariables, TContext>>
|
|
125
139
|
|
|
126
140
|
export type CreateMutateFunction<
|
|
127
141
|
TData = unknown,
|
|
128
|
-
TError =
|
|
142
|
+
TError = RegisteredError,
|
|
129
143
|
TVariables = void,
|
|
130
144
|
TContext = unknown,
|
|
131
145
|
> = (
|
|
@@ -134,14 +148,14 @@ export type CreateMutateFunction<
|
|
|
134
148
|
|
|
135
149
|
export type CreateMutateAsyncFunction<
|
|
136
150
|
TData = unknown,
|
|
137
|
-
TError =
|
|
151
|
+
TError = RegisteredError,
|
|
138
152
|
TVariables = void,
|
|
139
153
|
TContext = unknown,
|
|
140
154
|
> = MutateFunction<TData, TError, TVariables, TContext>
|
|
141
155
|
|
|
142
156
|
export type CreateBaseMutationResult<
|
|
143
157
|
TData = unknown,
|
|
144
|
-
TError =
|
|
158
|
+
TError = RegisteredError,
|
|
145
159
|
TVariables = unknown,
|
|
146
160
|
TContext = unknown,
|
|
147
161
|
> = Override<
|
|
@@ -153,17 +167,9 @@ export type CreateBaseMutationResult<
|
|
|
153
167
|
|
|
154
168
|
export type CreateMutationResult<
|
|
155
169
|
TData = unknown,
|
|
156
|
-
TError =
|
|
170
|
+
TError = RegisteredError,
|
|
157
171
|
TVariables = unknown,
|
|
158
172
|
TContext = unknown,
|
|
159
173
|
> = CreateBaseMutationResult<TData, TError, TVariables, TContext>
|
|
160
174
|
|
|
161
175
|
type Override<A, B> = { [K in keyof A]: K extends keyof B ? B[K] : A[K] }
|
|
162
|
-
|
|
163
|
-
/* --- Use Is Fetching Types --- */
|
|
164
|
-
export interface SolidQueryFilters extends Omit<QueryFilters, 'queryKey'> {
|
|
165
|
-
queryKey?: SolidQueryKey
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
export type ParseFilterArgs<T extends SolidQueryFilters> =
|
|
169
|
-
T['queryKey'] extends () => infer R ? T & { queryKey: R } : T
|
package/src/useIsFetching.ts
CHANGED
|
@@ -1,58 +1,26 @@
|
|
|
1
|
-
import type { QueryFilters } from '@tanstack/query-core'
|
|
2
|
-
|
|
3
|
-
import type { ContextOptions, SolidQueryKey, SolidQueryFilters } from './types'
|
|
4
|
-
import { useQueryClient } from './QueryClientProvider'
|
|
1
|
+
import type { QueryClient, QueryFilters } from '@tanstack/query-core'
|
|
5
2
|
import type { Accessor } from 'solid-js'
|
|
6
|
-
import { createSignal, onCleanup
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
interface Options extends ContextOptions {}
|
|
10
|
-
|
|
11
|
-
export function useIsFetching(
|
|
12
|
-
filters?: SolidQueryFilters,
|
|
13
|
-
options?: Options,
|
|
14
|
-
): Accessor<number>
|
|
15
|
-
export function useIsFetching(
|
|
16
|
-
queryKey?: SolidQueryKey,
|
|
17
|
-
filters?: SolidQueryFilters,
|
|
18
|
-
options?: Options,
|
|
19
|
-
): Accessor<number>
|
|
20
|
-
export function useIsFetching(
|
|
21
|
-
arg1?: SolidQueryKey | SolidQueryFilters,
|
|
22
|
-
arg2?: SolidQueryFilters | Options,
|
|
23
|
-
arg3?: Options,
|
|
24
|
-
): Accessor<number> {
|
|
25
|
-
const [filtersObj, optionsObj = {}] = parseFilterArgs(arg1, arg2, arg3)
|
|
3
|
+
import { createMemo, createSignal, onCleanup } from 'solid-js'
|
|
4
|
+
import { useQueryClient } from './QueryClientProvider'
|
|
26
5
|
|
|
27
|
-
|
|
28
|
-
|
|
6
|
+
type Options = () => {
|
|
7
|
+
filters?: QueryFilters
|
|
8
|
+
queryClient?: QueryClient
|
|
9
|
+
}
|
|
29
10
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
)
|
|
11
|
+
export function useIsFetching(options: Options = () => ({})): Accessor<number> {
|
|
12
|
+
const queryClient = createMemo(() => useQueryClient(options().queryClient))
|
|
33
13
|
const queryCache = createMemo(() => queryClient().getQueryCache())
|
|
34
14
|
|
|
35
15
|
const [fetches, setFetches] = createSignal(
|
|
36
|
-
queryClient().isFetching(filters
|
|
16
|
+
queryClient().isFetching(options().filters),
|
|
37
17
|
)
|
|
38
18
|
|
|
39
|
-
createComputed(() => {
|
|
40
|
-
const [newFiltersObj, newOptionsObj = {}] = parseFilterArgs(
|
|
41
|
-
arg1,
|
|
42
|
-
arg2,
|
|
43
|
-
arg3,
|
|
44
|
-
)
|
|
45
|
-
setFilters(newFiltersObj)
|
|
46
|
-
setOptions(newOptionsObj)
|
|
47
|
-
})
|
|
48
|
-
|
|
49
19
|
const unsubscribe = queryCache().subscribe(() => {
|
|
50
|
-
setFetches(queryClient().isFetching(
|
|
20
|
+
setFetches(queryClient().isFetching(options().filters))
|
|
51
21
|
})
|
|
52
22
|
|
|
53
|
-
onCleanup(
|
|
54
|
-
unsubscribe()
|
|
55
|
-
})
|
|
23
|
+
onCleanup(unsubscribe)
|
|
56
24
|
|
|
57
25
|
return fetches
|
|
58
26
|
}
|
package/src/useIsMutating.ts
CHANGED
|
@@ -1,42 +1,26 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import { parseMutationFilterArgs } from '@tanstack/query-core'
|
|
3
|
-
import type { ContextOptions } from './types'
|
|
1
|
+
import type { MutationFilters, QueryClient } from '@tanstack/query-core'
|
|
4
2
|
import { useQueryClient } from './QueryClientProvider'
|
|
5
3
|
import type { Accessor } from 'solid-js'
|
|
6
|
-
import { createSignal, onCleanup } from 'solid-js'
|
|
4
|
+
import { createSignal, onCleanup, createMemo } from 'solid-js'
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
options?: Options,
|
|
13
|
-
): Accessor<number>
|
|
14
|
-
export function useIsMutating(
|
|
15
|
-
mutationKey?: MutationKey,
|
|
16
|
-
filters?: Omit<MutationFilters, 'mutationKey'>,
|
|
17
|
-
options?: Options,
|
|
18
|
-
): Accessor<number>
|
|
19
|
-
export function useIsMutating(
|
|
20
|
-
arg1?: MutationKey | MutationFilters,
|
|
21
|
-
arg2?: Omit<MutationFilters, 'mutationKey'> | Options,
|
|
22
|
-
arg3?: Options,
|
|
23
|
-
): Accessor<number> {
|
|
24
|
-
const [filters, options = {}] = parseMutationFilterArgs(arg1, arg2, arg3)
|
|
6
|
+
type Options = () => {
|
|
7
|
+
filters?: MutationFilters
|
|
8
|
+
queryClient?: QueryClient
|
|
9
|
+
}
|
|
25
10
|
|
|
26
|
-
|
|
27
|
-
const
|
|
11
|
+
export function useIsMutating(options: Options = () => ({})): Accessor<number> {
|
|
12
|
+
const queryClient = createMemo(() => useQueryClient(options().queryClient))
|
|
13
|
+
const mutationCache = createMemo(() => queryClient().getMutationCache())
|
|
28
14
|
|
|
29
15
|
const [mutations, setMutations] = createSignal(
|
|
30
|
-
queryClient.isMutating(filters),
|
|
16
|
+
queryClient().isMutating(options().filters),
|
|
31
17
|
)
|
|
32
18
|
|
|
33
|
-
const unsubscribe = mutationCache.subscribe((_result) => {
|
|
34
|
-
setMutations(queryClient.isMutating(filters))
|
|
19
|
+
const unsubscribe = mutationCache().subscribe((_result) => {
|
|
20
|
+
setMutations(queryClient().isMutating(options().filters))
|
|
35
21
|
})
|
|
36
22
|
|
|
37
|
-
onCleanup(
|
|
38
|
-
unsubscribe()
|
|
39
|
-
})
|
|
23
|
+
onCleanup(unsubscribe)
|
|
40
24
|
|
|
41
25
|
return mutations
|
|
42
26
|
}
|