Skip to content

Commit fc92ef9

Browse files
fix(vue-query): make vue-query client compatible with query-core (#9250)
* fix(vue-query): make vue-query client compatible with query-core * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
1 parent 838acec commit fc92ef9

File tree

5 files changed

+44
-36
lines changed

5 files changed

+44
-36
lines changed

packages/vue-query/src/__tests__/vueQueryPlugin.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -269,11 +269,11 @@ describe('VueQueryPlugin', () => {
269269
],
270270
})
271271

272-
expect(customClient.isRestoring.value).toBeTruthy()
272+
expect(customClient.isRestoring?.value).toBeTruthy()
273273

274274
await sleep(0)
275275

276-
expect(customClient.isRestoring.value).toBeFalsy()
276+
expect(customClient.isRestoring?.value).toBeFalsy()
277277
})
278278

279279
test('should delay useQuery subscription and not call fetcher if data is not stale', async () => {
@@ -311,14 +311,14 @@ describe('VueQueryPlugin', () => {
311311
customClient,
312312
)
313313

314-
expect(customClient.isRestoring.value).toBeTruthy()
314+
expect(customClient.isRestoring?.value).toBeTruthy()
315315
expect(query.isFetching.value).toBeFalsy()
316316
expect(query.data.value).toStrictEqual(undefined)
317317
expect(fnSpy).toHaveBeenCalledTimes(0)
318318

319319
await sleep(0)
320320

321-
expect(customClient.isRestoring.value).toBeFalsy()
321+
expect(customClient.isRestoring?.value).toBeFalsy()
322322
expect(query.data.value).toStrictEqual({ foo: 'bar' })
323323
expect(fnSpy).toHaveBeenCalledTimes(0)
324324
})
@@ -373,7 +373,7 @@ describe('VueQueryPlugin', () => {
373373
customClient,
374374
)
375375

376-
expect(customClient.isRestoring.value).toBeTruthy()
376+
expect(customClient.isRestoring?.value).toBeTruthy()
377377

378378
expect(query.isFetching.value).toBeFalsy()
379379
expect(query.data.value).toStrictEqual(undefined)
@@ -384,7 +384,7 @@ describe('VueQueryPlugin', () => {
384384

385385
await sleep(0)
386386

387-
expect(customClient.isRestoring.value).toBeFalsy()
387+
expect(customClient.isRestoring?.value).toBeFalsy()
388388
expect(query.data.value).toStrictEqual({ foo1: 'bar1' })
389389
expect(queries.value[0].data).toStrictEqual({ foo2: 'bar2' })
390390
expect(fnSpy).toHaveBeenCalledTimes(0)

packages/vue-query/src/queryClient.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export class QueryClient extends QC {
4444
super(vueQueryConfig)
4545
}
4646

47-
isRestoring: Ref<boolean> = ref(false)
47+
isRestoring?: Ref<boolean> = ref(false)
4848

4949
isFetching(filters: MaybeRefDeep<QueryFilters> = {}): number {
5050
return super.isFetching(cloneDeepUnref(filters))

packages/vue-query/src/useBaseQuery.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ export function useBaseQuery<
9393
TQueryKey
9494
> = client.defaultQueryOptions(clonedOptions)
9595

96-
defaulted._optimisticResults = client.isRestoring.value
96+
defaulted._optimisticResults = client.isRestoring?.value
9797
? 'isRestoring'
9898
: 'optimistic'
9999

@@ -110,18 +110,20 @@ export function useBaseQuery<
110110
// noop
111111
}
112112

113-
watch(
114-
client.isRestoring,
115-
(isRestoring) => {
116-
if (!isRestoring) {
117-
unsubscribe()
118-
unsubscribe = observer.subscribe((result) => {
119-
updateState(state, result)
120-
})
121-
}
122-
},
123-
{ immediate: true },
124-
)
113+
if (client.isRestoring) {
114+
watch(
115+
client.isRestoring,
116+
(isRestoring) => {
117+
if (!isRestoring) {
118+
unsubscribe()
119+
unsubscribe = observer.subscribe((result) => {
120+
updateState(state, result)
121+
})
122+
}
123+
},
124+
{ immediate: true },
125+
)
126+
}
125127

126128
const updater = () => {
127129
observer.setOptions(defaultedOptions.value)

packages/vue-query/src/useQueries.ts

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ export function useQueries<
274274
}
275275

276276
const defaulted = client.defaultQueryOptions(clonedOptions)
277-
defaulted._optimisticResults = client.isRestoring.value
277+
defaulted._optimisticResults = client.isRestoring?.value
278278
? 'isRestoring'
279279
: 'optimistic'
280280

@@ -317,20 +317,22 @@ export function useQueries<
317317
// noop
318318
}
319319

320-
watch(
321-
client.isRestoring,
322-
(isRestoring) => {
323-
if (!isRestoring) {
324-
unsubscribe()
325-
unsubscribe = observer.subscribe(() => {
326-
state.value = getOptimisticResult()
327-
})
320+
if (client.isRestoring) {
321+
watch(
322+
client.isRestoring,
323+
(isRestoring) => {
324+
if (!isRestoring) {
325+
unsubscribe()
326+
unsubscribe = observer.subscribe(() => {
327+
state.value = getOptimisticResult()
328+
})
328329

329-
state.value = getOptimisticResult()
330-
}
331-
},
332-
{ immediate: true },
333-
)
330+
state.value = getOptimisticResult()
331+
}
332+
},
333+
{ immediate: true },
334+
)
335+
}
334336

335337
watch(defaultedQueries, (queriesValue) => {
336338
observer.setQueries(

packages/vue-query/src/vueQueryPlugin.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,15 @@ export const VueQueryPlugin = {
4747
}
4848

4949
if (options.clientPersister) {
50-
client.isRestoring.value = true
50+
if (client.isRestoring) {
51+
client.isRestoring.value = true
52+
}
5153
const [unmount, promise] = options.clientPersister(client)
5254
persisterUnmount = unmount
5355
promise.then(() => {
54-
client.isRestoring.value = false
56+
if (client.isRestoring) {
57+
client.isRestoring.value = false
58+
}
5559
options.clientPersisterOnSuccess?.(client)
5660
})
5761
}

0 commit comments

Comments
 (0)