@tanstack/solid-query 5.0.0-alpha.2 → 5.0.0-alpha.20
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 +73 -34
- package/build/cjs/index.js.map +1 -1
- package/build/esm/index.js +75 -37
- package/build/esm/index.js.map +1 -1
- package/build/source/QueryClient.js +6 -0
- package/build/source/__tests__/QueryClientProvider.test.jsx +2 -1
- package/build/source/__tests__/createInfiniteQuery.test.jsx +67 -20
- package/build/source/__tests__/createMutation.test.jsx +19 -18
- package/build/source/__tests__/createQueries.test.jsx +2 -18
- package/build/source/__tests__/createQuery.test.jsx +70 -28
- package/build/source/__tests__/suspense.test.jsx +6 -5
- package/build/source/__tests__/useIsFetching.test.jsx +2 -4
- package/build/source/__tests__/useIsMutating.test.jsx +25 -28
- package/build/source/__tests__/utils.jsx +4 -3
- package/build/source/createBaseQuery.js +45 -19
- package/build/source/createQueries.js +5 -5
- package/build/source/index.js +1 -0
- package/build/source/useIsFetching.js +5 -5
- package/build/source/useIsMutating.js +5 -5
- package/build/types/QueryClient.d.ts +29 -0
- package/build/types/QueryClientProvider.d.ts +1 -1
- package/build/types/__tests__/utils.d.ts +3 -4
- package/build/types/createBaseQuery.d.ts +3 -2
- package/build/types/createInfiniteQuery.d.ts +4 -2
- package/build/types/createMutation.d.ts +4 -2
- package/build/types/createQueries.d.ts +5 -4
- package/build/types/createQuery.d.ts +2 -1
- package/build/types/index.d.ts +2 -0
- package/build/types/types.d.ts +2 -1
- package/build/types/useIsFetching.d.ts +3 -7
- package/build/types/useIsMutating.d.ts +3 -7
- package/build/umd/index.js +1 -1
- package/build/umd/index.js.map +1 -1
- package/package.json +5 -5
- package/src/QueryClient.ts +84 -0
- package/src/QueryClientProvider.tsx +1 -1
- package/src/__tests__/QueryClientProvider.test.tsx +2 -1
- package/src/__tests__/createInfiniteQuery.test.tsx +95 -34
- package/src/__tests__/createMutation.test.tsx +19 -18
- package/src/__tests__/createQueries.test.tsx +2 -24
- package/src/__tests__/createQuery.test.tsx +86 -29
- package/src/__tests__/suspense.test.tsx +6 -5
- package/src/__tests__/useIsFetching.test.tsx +2 -4
- package/src/__tests__/useIsMutating.test.tsx +32 -40
- package/src/__tests__/utils.tsx +4 -3
- package/src/createBaseQuery.ts +70 -25
- package/src/createInfiniteQuery.ts +3 -2
- package/src/createMutation.ts +4 -2
- package/src/createQueries.ts +9 -8
- package/src/createQuery.ts +4 -2
- package/src/index.ts +7 -0
- package/src/types.ts +4 -2
- package/src/useIsFetching.ts +10 -13
- package/src/useIsMutating.ts +10 -11
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
QueryObserver,
|
|
3
3
|
QueryKey,
|
|
4
|
-
QueryClient,
|
|
5
4
|
DefaultError,
|
|
6
5
|
InfiniteData,
|
|
7
6
|
} from '@tanstack/query-core'
|
|
7
|
+
import type { QueryClient } from './QueryClient'
|
|
8
8
|
import { InfiniteQueryObserver } from '@tanstack/query-core'
|
|
9
9
|
import type {
|
|
10
10
|
CreateInfiniteQueryOptions,
|
|
@@ -12,6 +12,7 @@ import type {
|
|
|
12
12
|
} from './types'
|
|
13
13
|
import { createBaseQuery } from './createBaseQuery'
|
|
14
14
|
import { createMemo } from 'solid-js'
|
|
15
|
+
import type { Accessor } from 'solid-js'
|
|
15
16
|
|
|
16
17
|
export function createInfiniteQuery<
|
|
17
18
|
TQueryFnData,
|
|
@@ -27,7 +28,7 @@ export function createInfiniteQuery<
|
|
|
27
28
|
TQueryKey,
|
|
28
29
|
TPageParam
|
|
29
30
|
>,
|
|
30
|
-
queryClient?:
|
|
31
|
+
queryClient?: Accessor<QueryClient>,
|
|
31
32
|
): CreateInfiniteQueryResult<TData, TError> {
|
|
32
33
|
return createBaseQuery(
|
|
33
34
|
createMemo(() => options()),
|
package/src/createMutation.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DefaultError } from '@tanstack/query-core'
|
|
2
|
+
import type { QueryClient } from './QueryClient'
|
|
2
3
|
import { MutationObserver } from '@tanstack/query-core'
|
|
3
4
|
import { useQueryClient } from './QueryClientProvider'
|
|
4
5
|
import type {
|
|
@@ -6,6 +7,7 @@ import type {
|
|
|
6
7
|
CreateMutationOptions,
|
|
7
8
|
CreateMutationResult,
|
|
8
9
|
} from './types'
|
|
10
|
+
import type { Accessor } from 'solid-js'
|
|
9
11
|
import { createComputed, onCleanup, on } from 'solid-js'
|
|
10
12
|
import { createStore } from 'solid-js/store'
|
|
11
13
|
import { shouldThrowError } from './utils'
|
|
@@ -18,7 +20,7 @@ export function createMutation<
|
|
|
18
20
|
TContext = unknown,
|
|
19
21
|
>(
|
|
20
22
|
options: CreateMutationOptions<TData, TError, TVariables, TContext>,
|
|
21
|
-
queryClient?:
|
|
23
|
+
queryClient?: Accessor<QueryClient>,
|
|
22
24
|
): CreateMutationResult<TData, TError, TVariables, TContext> {
|
|
23
25
|
const client = useQueryClient(queryClient?.())
|
|
24
26
|
|
package/src/createQueries.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
QueriesPlaceholderDataFunction,
|
|
3
|
-
QueryClient,
|
|
4
3
|
QueryFunction,
|
|
5
4
|
QueryKey,
|
|
6
5
|
DefaultError,
|
|
7
6
|
} from '@tanstack/query-core'
|
|
8
7
|
import { notifyManager, QueriesObserver } from '@tanstack/query-core'
|
|
8
|
+
import type { QueryClient } from './QueryClient'
|
|
9
|
+
import type { Accessor } from 'solid-js'
|
|
9
10
|
import { createComputed, onCleanup, onMount } from 'solid-js'
|
|
10
11
|
import { createStore, unwrap } from 'solid-js/store'
|
|
11
12
|
import { useQueryClient } from './QueryClientProvider'
|
|
@@ -148,20 +149,20 @@ export type QueriesResults<
|
|
|
148
149
|
CreateQueryResult[]
|
|
149
150
|
|
|
150
151
|
export function createQueries<T extends any[]>(
|
|
151
|
-
queriesOptions:
|
|
152
|
+
queriesOptions: Accessor<{
|
|
152
153
|
queries: readonly [...QueriesOptions<T>]
|
|
153
|
-
|
|
154
|
-
|
|
154
|
+
}>,
|
|
155
|
+
queryClient?: Accessor<QueryClient>,
|
|
155
156
|
): QueriesResults<T> {
|
|
156
|
-
const
|
|
157
|
+
const client = useQueryClient(queryClient?.())
|
|
157
158
|
|
|
158
159
|
const defaultedQueries = queriesOptions().queries.map((options) => {
|
|
159
|
-
const defaultedOptions =
|
|
160
|
+
const defaultedOptions = client.defaultQueryOptions(options)
|
|
160
161
|
defaultedOptions._optimisticResults = 'optimistic'
|
|
161
162
|
return defaultedOptions
|
|
162
163
|
})
|
|
163
164
|
|
|
164
|
-
const observer = new QueriesObserver(
|
|
165
|
+
const observer = new QueriesObserver(client, defaultedQueries)
|
|
165
166
|
|
|
166
167
|
const [state, setState] = createStore(
|
|
167
168
|
observer.getOptimisticResult(defaultedQueries),
|
|
@@ -181,7 +182,7 @@ export function createQueries<T extends any[]>(
|
|
|
181
182
|
|
|
182
183
|
createComputed(() => {
|
|
183
184
|
const updatedQueries = queriesOptions().queries.map((options) => {
|
|
184
|
-
const defaultedOptions =
|
|
185
|
+
const defaultedOptions = client.defaultQueryOptions(options)
|
|
185
186
|
defaultedOptions._optimisticResults = 'optimistic'
|
|
186
187
|
return defaultedOptions
|
|
187
188
|
})
|
package/src/createQuery.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { QueryKey, DefaultError } from '@tanstack/query-core'
|
|
2
2
|
import { QueryObserver } from '@tanstack/query-core'
|
|
3
|
+
import type { QueryClient } from './QueryClient'
|
|
4
|
+
import type { Accessor } from 'solid-js'
|
|
3
5
|
import { createMemo } from 'solid-js'
|
|
4
6
|
import { createBaseQuery } from './createBaseQuery'
|
|
5
7
|
import type {
|
|
@@ -58,7 +60,7 @@ export function createQuery<
|
|
|
58
60
|
TQueryKey extends QueryKey = QueryKey,
|
|
59
61
|
>(
|
|
60
62
|
options: CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
61
|
-
queryClient?:
|
|
63
|
+
queryClient?: Accessor<QueryClient>,
|
|
62
64
|
) {
|
|
63
65
|
return createBaseQuery(
|
|
64
66
|
createMemo(() => options()),
|
package/src/index.ts
CHANGED
|
@@ -8,6 +8,13 @@ export * from '@tanstack/query-core'
|
|
|
8
8
|
|
|
9
9
|
// Solid Query
|
|
10
10
|
export * from './types'
|
|
11
|
+
export { QueryClient } from './QueryClient'
|
|
12
|
+
export type {
|
|
13
|
+
QueryObserverOptions,
|
|
14
|
+
DefaultOptions,
|
|
15
|
+
QueryClientConfig,
|
|
16
|
+
InfiniteQueryObserverOptions,
|
|
17
|
+
} from './QueryClient'
|
|
11
18
|
export { createQuery } from './createQuery'
|
|
12
19
|
export {
|
|
13
20
|
QueryClientContext,
|
package/src/types.ts
CHANGED
|
@@ -2,17 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
import type {
|
|
4
4
|
QueryKey,
|
|
5
|
-
QueryObserverOptions,
|
|
6
5
|
QueryObserverResult,
|
|
7
6
|
MutateFunction,
|
|
8
7
|
MutationObserverOptions,
|
|
9
8
|
MutationObserverResult,
|
|
10
9
|
DefinedQueryObserverResult,
|
|
11
|
-
InfiniteQueryObserverOptions,
|
|
12
10
|
InfiniteQueryObserverResult,
|
|
13
11
|
WithRequired,
|
|
14
12
|
DefaultError,
|
|
15
13
|
} from '@tanstack/query-core'
|
|
14
|
+
import type {
|
|
15
|
+
QueryObserverOptions,
|
|
16
|
+
InfiniteQueryObserverOptions,
|
|
17
|
+
} from './QueryClient'
|
|
16
18
|
|
|
17
19
|
export type FunctionedParams<T> = () => T
|
|
18
20
|
|
package/src/useIsFetching.ts
CHANGED
|
@@ -1,23 +1,20 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { QueryFilters } from '@tanstack/query-core'
|
|
2
|
+
import type { QueryClient } from './QueryClient'
|
|
2
3
|
import type { Accessor } from 'solid-js'
|
|
3
4
|
import { createMemo, createSignal, onCleanup } from 'solid-js'
|
|
4
5
|
import { useQueryClient } from './QueryClientProvider'
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
filters?: QueryFilters
|
|
8
|
-
queryClient?: QueryClient
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const queryClient = createMemo(() => useQueryClient(options().queryClient))
|
|
13
|
-
const queryCache = createMemo(() => queryClient().getQueryCache())
|
|
7
|
+
export function useIsFetching(
|
|
8
|
+
filters?: Accessor<QueryFilters>,
|
|
9
|
+
queryClient?: Accessor<QueryClient>,
|
|
10
|
+
): Accessor<number> {
|
|
11
|
+
const client = createMemo(() => useQueryClient(queryClient?.()))
|
|
12
|
+
const queryCache = createMemo(() => client().getQueryCache())
|
|
14
13
|
|
|
15
|
-
const [fetches, setFetches] = createSignal(
|
|
16
|
-
queryClient().isFetching(options().filters),
|
|
17
|
-
)
|
|
14
|
+
const [fetches, setFetches] = createSignal(client().isFetching(filters?.()))
|
|
18
15
|
|
|
19
16
|
const unsubscribe = queryCache().subscribe(() => {
|
|
20
|
-
setFetches(
|
|
17
|
+
setFetches(client().isFetching(filters?.()))
|
|
21
18
|
})
|
|
22
19
|
|
|
23
20
|
onCleanup(unsubscribe)
|
package/src/useIsMutating.ts
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
import type { MutationFilters
|
|
1
|
+
import type { MutationFilters } from '@tanstack/query-core'
|
|
2
|
+
import type { QueryClient } from './QueryClient'
|
|
2
3
|
import { useQueryClient } from './QueryClientProvider'
|
|
3
4
|
import type { Accessor } from 'solid-js'
|
|
4
5
|
import { createSignal, onCleanup, createMemo } from 'solid-js'
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
filters?: MutationFilters
|
|
8
|
-
queryClient?: QueryClient
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const queryClient = createMemo(() => useQueryClient(options().queryClient))
|
|
13
|
-
const mutationCache = createMemo(() => queryClient().getMutationCache())
|
|
7
|
+
export function useIsMutating(
|
|
8
|
+
filters?: Accessor<MutationFilters>,
|
|
9
|
+
queryClient?: Accessor<QueryClient>,
|
|
10
|
+
): Accessor<number> {
|
|
11
|
+
const client = createMemo(() => useQueryClient(queryClient?.()))
|
|
12
|
+
const mutationCache = createMemo(() => client().getMutationCache())
|
|
14
13
|
|
|
15
14
|
const [mutations, setMutations] = createSignal(
|
|
16
|
-
|
|
15
|
+
client().isMutating(filters?.()),
|
|
17
16
|
)
|
|
18
17
|
|
|
19
18
|
const unsubscribe = mutationCache().subscribe((_result) => {
|
|
20
|
-
setMutations(
|
|
19
|
+
setMutations(client().isMutating(filters?.()))
|
|
21
20
|
})
|
|
22
21
|
|
|
23
22
|
onCleanup(unsubscribe)
|