@tanstack/solid-query 4.24.9 → 5.0.0-alpha.0
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 +298 -0
- package/build/cjs/index.js.map +1 -0
- package/build/esm/index.js +283 -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 +6 -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 +15 -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 -3572
- 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
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { render, screen, waitFor } from 'solid-testing-library'
|
|
2
2
|
import { queryKey } from './utils'
|
|
3
3
|
|
|
4
|
-
import { QueryCache
|
|
5
|
-
import type { Context } from 'solid-js'
|
|
6
|
-
import { createContext, useContext } from 'solid-js'
|
|
7
|
-
import { renderToString } from 'solid-js/web'
|
|
4
|
+
import { QueryCache } from '@tanstack/query-core'
|
|
8
5
|
import { createQuery, QueryClientProvider, useQueryClient } from '..'
|
|
9
6
|
import { createQueryClient, sleep } from './utils'
|
|
10
7
|
|
|
@@ -16,10 +13,13 @@ describe('QueryClientProvider', () => {
|
|
|
16
13
|
const queryClient = createQueryClient({ queryCache })
|
|
17
14
|
|
|
18
15
|
function Page() {
|
|
19
|
-
const query = createQuery(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
const query = createQuery(() => ({
|
|
17
|
+
queryKey: key,
|
|
18
|
+
queryFn: async () => {
|
|
19
|
+
await sleep(10)
|
|
20
|
+
return 'test'
|
|
21
|
+
},
|
|
22
|
+
}))
|
|
23
23
|
|
|
24
24
|
return (
|
|
25
25
|
<div>
|
|
@@ -38,7 +38,7 @@ describe('QueryClientProvider', () => {
|
|
|
38
38
|
return screen.getByText('test')
|
|
39
39
|
})
|
|
40
40
|
|
|
41
|
-
expect(queryCache.find(key
|
|
41
|
+
expect(queryCache.find({ queryKey: key })).toBeDefined()
|
|
42
42
|
})
|
|
43
43
|
|
|
44
44
|
it('allows multiple caches to be partitioned', async () => {
|
|
@@ -52,10 +52,13 @@ describe('QueryClientProvider', () => {
|
|
|
52
52
|
const queryClient2 = createQueryClient({ queryCache: queryCache2 })
|
|
53
53
|
|
|
54
54
|
function Page1() {
|
|
55
|
-
const query = createQuery(
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
const query = createQuery(() => ({
|
|
56
|
+
queryKey: key1,
|
|
57
|
+
queryFn: async () => {
|
|
58
|
+
await sleep(10)
|
|
59
|
+
return 'test1'
|
|
60
|
+
},
|
|
61
|
+
}))
|
|
59
62
|
|
|
60
63
|
return (
|
|
61
64
|
<div>
|
|
@@ -64,10 +67,13 @@ describe('QueryClientProvider', () => {
|
|
|
64
67
|
)
|
|
65
68
|
}
|
|
66
69
|
function Page2() {
|
|
67
|
-
const query = createQuery(
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
70
|
+
const query = createQuery(() => ({
|
|
71
|
+
queryKey: key2,
|
|
72
|
+
queryFn: async () => {
|
|
73
|
+
await sleep(10)
|
|
74
|
+
return 'test2'
|
|
75
|
+
},
|
|
76
|
+
}))
|
|
71
77
|
|
|
72
78
|
return (
|
|
73
79
|
<div>
|
|
@@ -90,10 +96,10 @@ describe('QueryClientProvider', () => {
|
|
|
90
96
|
await waitFor(() => screen.getByText('test1'))
|
|
91
97
|
await waitFor(() => screen.getByText('test2'))
|
|
92
98
|
|
|
93
|
-
expect(queryCache1.find(key1
|
|
94
|
-
expect(queryCache1.find(key2
|
|
95
|
-
expect(queryCache2.find(key1
|
|
96
|
-
expect(queryCache2.find(key2
|
|
99
|
+
expect(queryCache1.find({ queryKey: key1 })).toBeDefined()
|
|
100
|
+
expect(queryCache1.find({ queryKey: key2 })).not.toBeDefined()
|
|
101
|
+
expect(queryCache2.find({ queryKey: key1 })).not.toBeDefined()
|
|
102
|
+
expect(queryCache2.find({ queryKey: key2 })).toBeDefined()
|
|
97
103
|
})
|
|
98
104
|
|
|
99
105
|
it("uses defaultOptions for queries when they don't provide their own config", async () => {
|
|
@@ -104,16 +110,19 @@ describe('QueryClientProvider', () => {
|
|
|
104
110
|
queryCache,
|
|
105
111
|
defaultOptions: {
|
|
106
112
|
queries: {
|
|
107
|
-
|
|
113
|
+
gcTime: Infinity,
|
|
108
114
|
},
|
|
109
115
|
},
|
|
110
116
|
})
|
|
111
117
|
|
|
112
118
|
function Page() {
|
|
113
|
-
const query = createQuery(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
119
|
+
const query = createQuery(() => ({
|
|
120
|
+
queryKey: key,
|
|
121
|
+
queryFn: async () => {
|
|
122
|
+
await sleep(10)
|
|
123
|
+
return 'test'
|
|
124
|
+
},
|
|
125
|
+
}))
|
|
117
126
|
|
|
118
127
|
return (
|
|
119
128
|
<div>
|
|
@@ -130,66 +139,8 @@ describe('QueryClientProvider', () => {
|
|
|
130
139
|
|
|
131
140
|
await waitFor(() => screen.getByText('test'))
|
|
132
141
|
|
|
133
|
-
expect(queryCache.find(key
|
|
134
|
-
expect(queryCache.find(key
|
|
135
|
-
})
|
|
136
|
-
|
|
137
|
-
describe('with custom context', () => {
|
|
138
|
-
it('uses the correct context', async () => {
|
|
139
|
-
const key = queryKey()
|
|
140
|
-
|
|
141
|
-
const contextOuter = createContext<QueryClient | undefined>(undefined)
|
|
142
|
-
const contextInner = createContext<QueryClient | undefined>(undefined)
|
|
143
|
-
|
|
144
|
-
const queryCacheOuter = new QueryCache()
|
|
145
|
-
const queryClientOuter = new QueryClient({ queryCache: queryCacheOuter })
|
|
146
|
-
|
|
147
|
-
const queryCacheInner = new QueryCache()
|
|
148
|
-
const queryClientInner = new QueryClient({ queryCache: queryCacheInner })
|
|
149
|
-
|
|
150
|
-
const queryCacheInnerInner = new QueryCache()
|
|
151
|
-
const queryClientInnerInner = new QueryClient({
|
|
152
|
-
queryCache: queryCacheInnerInner,
|
|
153
|
-
})
|
|
154
|
-
|
|
155
|
-
function Page() {
|
|
156
|
-
const queryOuter = createQuery(key, async () => 'testOuter', {
|
|
157
|
-
context: contextOuter,
|
|
158
|
-
})
|
|
159
|
-
const queryInner = createQuery(key, async () => 'testInner', {
|
|
160
|
-
context: contextInner,
|
|
161
|
-
})
|
|
162
|
-
const queryInnerInner = createQuery(key, async () => 'testInnerInner')
|
|
163
|
-
|
|
164
|
-
return (
|
|
165
|
-
<div>
|
|
166
|
-
<h1>
|
|
167
|
-
{queryOuter.data} {queryInner.data} {queryInnerInner.data}
|
|
168
|
-
</h1>
|
|
169
|
-
</div>
|
|
170
|
-
)
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
// contextSharing should be ignored when passing a custom context.
|
|
174
|
-
const contextSharing = true
|
|
175
|
-
|
|
176
|
-
render(() => (
|
|
177
|
-
<QueryClientProvider client={queryClientOuter} context={contextOuter}>
|
|
178
|
-
<QueryClientProvider client={queryClientInner} context={contextInner}>
|
|
179
|
-
<QueryClientProvider
|
|
180
|
-
client={queryClientInnerInner}
|
|
181
|
-
contextSharing={contextSharing}
|
|
182
|
-
>
|
|
183
|
-
<Page />
|
|
184
|
-
</QueryClientProvider>
|
|
185
|
-
</QueryClientProvider>
|
|
186
|
-
</QueryClientProvider>
|
|
187
|
-
))
|
|
188
|
-
|
|
189
|
-
await waitFor(() =>
|
|
190
|
-
screen.getByText('testOuter testInner testInnerInner'),
|
|
191
|
-
)
|
|
192
|
-
})
|
|
142
|
+
expect(queryCache.find({ queryKey: key })).toBeDefined()
|
|
143
|
+
expect(queryCache.find({ queryKey: key })?.options.gcTime).toBe(Infinity)
|
|
193
144
|
})
|
|
194
145
|
|
|
195
146
|
describe('useQueryClient', () => {
|
|
@@ -209,59 +160,5 @@ describe('QueryClientProvider', () => {
|
|
|
209
160
|
|
|
210
161
|
consoleMock.mockRestore()
|
|
211
162
|
})
|
|
212
|
-
|
|
213
|
-
it('should use window to get the context when contextSharing is true', () => {
|
|
214
|
-
const queryCache = new QueryCache()
|
|
215
|
-
const queryClient = createQueryClient({ queryCache })
|
|
216
|
-
|
|
217
|
-
let queryClientFromHook: QueryClient | undefined
|
|
218
|
-
let queryClientFromWindow: QueryClient | undefined
|
|
219
|
-
|
|
220
|
-
function Page() {
|
|
221
|
-
queryClientFromHook = useQueryClient()
|
|
222
|
-
queryClientFromWindow = useContext(
|
|
223
|
-
window.SolidQueryClientContext as Context<QueryClient | undefined>,
|
|
224
|
-
)
|
|
225
|
-
return null
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
render(() => (
|
|
229
|
-
<QueryClientProvider client={queryClient} contextSharing={true}>
|
|
230
|
-
<Page />
|
|
231
|
-
</QueryClientProvider>
|
|
232
|
-
))
|
|
233
|
-
|
|
234
|
-
expect(queryClientFromHook).toEqual(queryClient)
|
|
235
|
-
expect(queryClientFromWindow).toEqual(queryClient)
|
|
236
|
-
})
|
|
237
|
-
|
|
238
|
-
it.skip('should not use window to get the context when contextSharing is true and window does not exist', () => {
|
|
239
|
-
const queryCache = new QueryCache()
|
|
240
|
-
const queryClient = createQueryClient({ queryCache })
|
|
241
|
-
|
|
242
|
-
// Mock a non web browser environment
|
|
243
|
-
const windowSpy = jest
|
|
244
|
-
.spyOn(window, 'window', 'get')
|
|
245
|
-
.mockImplementation(undefined)
|
|
246
|
-
|
|
247
|
-
let queryClientFromHook: QueryClient | undefined
|
|
248
|
-
|
|
249
|
-
function Page() {
|
|
250
|
-
queryClientFromHook = useQueryClient()
|
|
251
|
-
return null
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
// TODO(lukemurray): fails because renderToString never calls Page
|
|
255
|
-
// probably an SSR-testing issue we need to fix.
|
|
256
|
-
renderToString(() => (
|
|
257
|
-
<QueryClientProvider client={queryClient} contextSharing={true}>
|
|
258
|
-
<Page />
|
|
259
|
-
</QueryClientProvider>
|
|
260
|
-
))
|
|
261
|
-
|
|
262
|
-
expect(queryClientFromHook).toEqual(queryClient)
|
|
263
|
-
|
|
264
|
-
windowSpy.mockRestore()
|
|
265
|
-
})
|
|
266
163
|
})
|
|
267
164
|
})
|