Skip to content

Commit 46a5584

Browse files
author
Kamran Ayub
authored
fix(types): Fix defaultConfig typing for makeQueryCache (TanStack#807)
* Add failing type test * Add failing error test * Passing type test * revert settings.json dangit * ci
1 parent cbb90f3 commit 46a5584

File tree

2 files changed

+42
-23
lines changed

2 files changed

+42
-23
lines changed

types/index.d.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -635,16 +635,16 @@ export interface QueryCache {
635635
export const queryCache: QueryCache
636636
export const queryCaches: QueryCache[]
637637

638-
export interface MakeQueryCacheOptions {
638+
export interface MakeQueryCacheOptions<TError = Error> {
639639
frozen?: boolean
640-
defaultConfig?: BaseQueryOptions
640+
defaultConfig?: ReactQueryProviderConfig<TError>
641641
}
642642

643643
/**
644644
* a factory that creates a new query cache
645645
*/
646-
export function makeQueryCache(
647-
makeQueryCacheOptions?: MakeQueryCacheOptions
646+
export function makeQueryCache<TError = Error>(
647+
makeQueryCacheOptions?: MakeQueryCacheOptions<TError>
648648
): QueryCache
649649

650650
/**

types/test.ts

Lines changed: 38 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,12 @@ import {
88
useQuery,
99
queryCache,
1010
CachedQuery,
11+
makeQueryCache,
1112
} from 'react-query'
1213

13-
class FooError extends Error {}
14+
class FooError extends Error {
15+
foo = true
16+
}
1417

1518
function resetErrorBoundaries() {
1619
queryCache.resetErrorBoundaries // $ExpectType () => void
@@ -39,36 +42,39 @@ function prefetchQuery() {
3942
}
4043

4144
function getQueryData() {
42-
queryCache.getQueryData(['queryKey']);
43-
queryCache.getQueryData('queryKey');
44-
queryCache.getQueryData(true);
45-
queryCache.getQueryData((query) => true);
45+
queryCache.getQueryData(['queryKey'])
46+
queryCache.getQueryData('queryKey')
47+
queryCache.getQueryData(true)
48+
queryCache.getQueryData(query => true)
4649
}
4750

4851
function setQueryData() {
49-
queryCache.setQueryData(['queryKey'], ['data']);
50-
queryCache.setQueryData('queryKey', ['data']);
51-
queryCache.setQueryData(true, ['data']);
52-
queryCache.setQueryData((query) => true, ['data']);
52+
queryCache.setQueryData(['queryKey'], ['data'])
53+
queryCache.setQueryData('queryKey', ['data'])
54+
queryCache.setQueryData(true, ['data'])
55+
queryCache.setQueryData(query => true, ['data'])
5356
}
5457

5558
function getQuery() {
56-
queryCache.getQuery(['queryKey']);
57-
queryCache.getQuery('queryKey');
58-
queryCache.getQuery(true);
59-
queryCache.getQuery((query) => true);
59+
queryCache.getQuery(['queryKey'])
60+
queryCache.getQuery('queryKey')
61+
queryCache.getQuery(true)
62+
queryCache.getQuery(query => true)
6063
}
6164

6265
function getQueries() {
63-
queryCache.getQueries(['queryKey']);
64-
queryCache.getQueries('queryKey');
65-
queryCache.getQueries(true);
66-
queryCache.getQueries((query) => true);
66+
queryCache.getQueries(['queryKey'])
67+
queryCache.getQueries('queryKey')
68+
queryCache.getQueries(true)
69+
queryCache.getQueries(query => true)
6770
}
6871

6972
function cachedQueryErrorState() {
70-
const query = queryCache.getQuery(['queryKey']) as CachedQuery<unknown, FooError>
71-
const error: FooError | null | undefined = query.state.error;
73+
const query = queryCache.getQuery(['queryKey']) as CachedQuery<
74+
unknown,
75+
FooError
76+
>
77+
const error: FooError | null | undefined = query.state.error
7278
}
7379

7480
function simpleQuery() {
@@ -598,3 +604,16 @@ function mutationStatusDiscriminatedUnion() {
598604
mutationState.error // $ExpectType undefined
599605
}
600606
}
607+
608+
function makeQueryCacheTest() {
609+
makeQueryCache<FooError>({
610+
defaultConfig: {
611+
queries: {
612+
refetchOnMount: false,
613+
onError: err => {
614+
err.foo
615+
},
616+
},
617+
},
618+
})
619+
}

0 commit comments

Comments
 (0)