From 8f741903212e37d4beca147975f70e812850ad99 Mon Sep 17 00:00:00 2001 From: Yannick CROISSANT Date: Fri, 7 Jun 2024 17:06:58 +0200 Subject: [PATCH 1/3] fix(query-core): widen QueriesObserver queries type (#7446) Widen the `QueriesObserver` queries type so we can assign `UseQueryOptions` to `QueryObserverOptions`. The result from the `queryOptions` helper can now be passed to `QueriesObserver`. --- packages/query-core/src/queriesObserver.ts | 2 +- .../src/__tests__/queryOptions.test-d.tsx | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/query-core/src/queriesObserver.ts b/packages/query-core/src/queriesObserver.ts index 8bfb33e954..b00be002c8 100644 --- a/packages/query-core/src/queriesObserver.ts +++ b/packages/query-core/src/queriesObserver.ts @@ -45,7 +45,7 @@ export class QueriesObserver< constructor( client: QueryClient, - queries: Array, + queries: Array>, _options?: QueriesObserverOptions, ) { super() diff --git a/packages/react-query/src/__tests__/queryOptions.test-d.tsx b/packages/react-query/src/__tests__/queryOptions.test-d.tsx index dcb8d0ca47..f7189e567d 100644 --- a/packages/react-query/src/__tests__/queryOptions.test-d.tsx +++ b/packages/react-query/src/__tests__/queryOptions.test-d.tsx @@ -1,9 +1,10 @@ import { describe, expect, expectTypeOf, it } from 'vitest' -import { QueryClient, dataTagSymbol, skipToken } from '@tanstack/query-core' +import { QueriesObserver, QueryClient, dataTagSymbol, skipToken } from '@tanstack/query-core' import { queryOptions } from '../queryOptions' import { useQuery } from '../useQuery' import { useQueries } from '../useQueries' import { useSuspenseQuery } from '../useSuspenseQuery' +import type { QueryObserverResult } from '@tanstack/query-core'; describe('queryOptions', () => { it('should not allow excess properties', () => { @@ -169,4 +170,15 @@ describe('queryOptions', () => { const data = queryClient.getQueryData(options.queryKey) expectTypeOf(data).toEqualTypeOf() }) + + it('should return the proper type when passed to QueriesObserver', () => { + const options = queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + }) + + const queryClient = new QueryClient() + const queriesObserver = new QueriesObserver(queryClient, [options]) + expectTypeOf(queriesObserver).toEqualTypeOf>>() + }) }) From 6d9b7ed7ba4ac087931faac26f40d65f984eda28 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Wed, 17 Jul 2024 16:17:20 +0200 Subject: [PATCH 2/3] chore: prettier --- .../src/__tests__/queryOptions.test-d.tsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/react-query/src/__tests__/queryOptions.test-d.tsx b/packages/react-query/src/__tests__/queryOptions.test-d.tsx index f7189e567d..242be3972c 100644 --- a/packages/react-query/src/__tests__/queryOptions.test-d.tsx +++ b/packages/react-query/src/__tests__/queryOptions.test-d.tsx @@ -1,10 +1,15 @@ import { describe, expect, expectTypeOf, it } from 'vitest' -import { QueriesObserver, QueryClient, dataTagSymbol, skipToken } from '@tanstack/query-core' +import { + QueriesObserver, + QueryClient, + dataTagSymbol, + skipToken, +} from '@tanstack/query-core' import { queryOptions } from '../queryOptions' import { useQuery } from '../useQuery' import { useQueries } from '../useQueries' import { useSuspenseQuery } from '../useSuspenseQuery' -import type { QueryObserverResult } from '@tanstack/query-core'; +import type { QueryObserverResult } from '@tanstack/query-core' describe('queryOptions', () => { it('should not allow excess properties', () => { @@ -179,6 +184,8 @@ describe('queryOptions', () => { const queryClient = new QueryClient() const queriesObserver = new QueriesObserver(queryClient, [options]) - expectTypeOf(queriesObserver).toEqualTypeOf>>() + expectTypeOf(queriesObserver).toEqualTypeOf< + QueriesObserver> + >() }) }) From 05e887d42f446494160b96ce173e963e3cac22cd Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Wed, 17 Jul 2024 16:25:53 +0200 Subject: [PATCH 3/3] fix(types): QueryKey needs to default to `any`, too --- packages/query-core/src/queriesObserver.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/query-core/src/queriesObserver.ts b/packages/query-core/src/queriesObserver.ts index b00be002c8..2c58e9221c 100644 --- a/packages/query-core/src/queriesObserver.ts +++ b/packages/query-core/src/queriesObserver.ts @@ -45,7 +45,7 @@ export class QueriesObserver< constructor( client: QueryClient, - queries: Array>, + queries: Array>, _options?: QueriesObserverOptions, ) { super()