Skip to content

Commit 1594868

Browse files
committed
fix: make queryKey typesafe
1 parent a116981 commit 1594868

File tree

4 files changed

+13
-13
lines changed

4 files changed

+13
-13
lines changed

packages/query-core/src/queryCache.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ export class QueryCache extends Subscribable<QueryCacheListener> {
165165
}
166166

167167
find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(
168-
arg1: QueryKey,
168+
arg1: QueryKey | QueryFilters,
169169
arg2?: QueryFilters,
170170
): Query<TQueryFnData, TError, TData> | undefined {
171171
const [filters] = parseFilterArgs(arg1, arg2)

packages/query-core/src/queryClient.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import {
1010
MutationFilters,
1111
functionalUpdate,
1212
ExtendedQueryFilters,
13-
isQueryKey,
1413
} from './utils'
1514
import type {
1615
QueryClientConfig,
@@ -119,11 +118,7 @@ export class QueryClient {
119118
arg1: QueryKey | ExtendedQueryFilters<TData, any, TData, QueryKey>,
120119
arg2?: QueryFilters,
121120
): TData | undefined {
122-
if (isQueryKey(arg1))
123-
return this.queryCache.find<TData>(arg1, arg2)?.state.data
124-
if (arg1.queryKey)
125-
return this.queryCache.find<TData>(arg1.queryKey, arg1)?.state.data
126-
return undefined
121+
return this.queryCache.find<TData>(arg1, arg2)?.state.data
127122
}
128123

129124
getQueriesData<TData = unknown>(queryKey: QueryKey): [QueryKey, TData][]

packages/query-core/src/tests/queryClient.test.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -471,11 +471,14 @@ describe('queryClient', () => {
471471
test('should return the query data with stale filter', () => {
472472
const key = queryKey()
473473
queryClient.setQueryData([key, 'id'], 'bar')
474-
expect(queryClient.getQueryData([key, 'id'], { stale: false })).toBe(
475-
'bar',
476-
)
477474
expect(
478-
queryClient.getQueryData({ queryKey: [key, 'id'], stale: false }),
475+
queryClient.getQueryData<string>([key, 'id'], { stale: false }),
476+
).toBe('bar')
477+
expect(
478+
queryClient.getQueryData<string>({
479+
queryKey: [key, 'id'],
480+
stale: false,
481+
}),
479482
).toBe('bar')
480483
})
481484

@@ -485,7 +488,7 @@ describe('queryClient', () => {
485488
expect(
486489
queryClient.getQueryData({
487490
queryKey: [key, 'id'],
488-
queryFn: async () => 1,
491+
queryFn: async () => 'foo',
489492
cacheTime: 1000,
490493
retry: false,
491494
}),

packages/query-core/src/utils.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ export interface ExtendedQueryFilters<
4545
TData = TQueryFnData,
4646
TQueryKey extends QueryKey = QueryKey,
4747
> extends Omit<QueryFilters, 'queryKey'>,
48-
QueryOptions<TQueryFnData, TError, TData, TQueryKey> {}
48+
Omit<QueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryKey'> {
49+
queryKey: TQueryKey
50+
}
4951

5052
export interface MutationFilters {
5153
/**

0 commit comments

Comments
 (0)