From 8ecac6688b01197c4c4010d3e240dfbca1895d50 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Sat, 27 May 2023 10:50:27 +0200 Subject: [PATCH 1/5] refactor: remove 'use client' from non-components --- packages/react-query/src/errorBoundaryUtils.ts | 1 - packages/react-query/src/{isRestoring.tsx => isRestoring.ts} | 1 - packages/react-query/src/useBaseQuery.ts | 1 - packages/react-query/src/useInfiniteQuery.ts | 1 - packages/react-query/src/useIsFetching.ts | 1 - packages/react-query/src/useMutation.ts | 1 - packages/react-query/src/useMutationState.ts | 1 - packages/react-query/src/useQueries.ts | 1 - packages/react-query/src/useQuery.ts | 1 - 9 files changed, 9 deletions(-) rename packages/react-query/src/{isRestoring.tsx => isRestoring.ts} (94%) diff --git a/packages/react-query/src/errorBoundaryUtils.ts b/packages/react-query/src/errorBoundaryUtils.ts index 9f4bb5320b..3746379eac 100644 --- a/packages/react-query/src/errorBoundaryUtils.ts +++ b/packages/react-query/src/errorBoundaryUtils.ts @@ -1,4 +1,3 @@ -'use client' import type { DefaultedQueryObserverOptions, Query, diff --git a/packages/react-query/src/isRestoring.tsx b/packages/react-query/src/isRestoring.ts similarity index 94% rename from packages/react-query/src/isRestoring.tsx rename to packages/react-query/src/isRestoring.ts index 7d59c72507..3d8728e703 100644 --- a/packages/react-query/src/isRestoring.tsx +++ b/packages/react-query/src/isRestoring.ts @@ -1,4 +1,3 @@ -'use client' import * as React from 'react' const IsRestoringContext = React.createContext(false) diff --git a/packages/react-query/src/useBaseQuery.ts b/packages/react-query/src/useBaseQuery.ts index 7fb7502df6..e204ac057b 100644 --- a/packages/react-query/src/useBaseQuery.ts +++ b/packages/react-query/src/useBaseQuery.ts @@ -1,4 +1,3 @@ -'use client' import * as React from 'react' import type { QueryClient, QueryKey, QueryObserver } from '@tanstack/query-core' diff --git a/packages/react-query/src/useInfiniteQuery.ts b/packages/react-query/src/useInfiniteQuery.ts index f1828e97c7..cea7895c74 100644 --- a/packages/react-query/src/useInfiniteQuery.ts +++ b/packages/react-query/src/useInfiniteQuery.ts @@ -1,4 +1,3 @@ -'use client' import type { QueryObserver, QueryKey, diff --git a/packages/react-query/src/useIsFetching.ts b/packages/react-query/src/useIsFetching.ts index 6e1604aeae..1e67425365 100644 --- a/packages/react-query/src/useIsFetching.ts +++ b/packages/react-query/src/useIsFetching.ts @@ -1,4 +1,3 @@ -'use client' import * as React from 'react' import type { QueryClient, QueryFilters } from '@tanstack/query-core' import { notifyManager } from '@tanstack/query-core' diff --git a/packages/react-query/src/useMutation.ts b/packages/react-query/src/useMutation.ts index e8236769f9..888712c6ec 100644 --- a/packages/react-query/src/useMutation.ts +++ b/packages/react-query/src/useMutation.ts @@ -1,4 +1,3 @@ -'use client' import * as React from 'react' import type { QueryClient, DefaultError } from '@tanstack/query-core' import { notifyManager, MutationObserver } from '@tanstack/query-core' diff --git a/packages/react-query/src/useMutationState.ts b/packages/react-query/src/useMutationState.ts index f8feb21b58..a4a6dbd89c 100644 --- a/packages/react-query/src/useMutationState.ts +++ b/packages/react-query/src/useMutationState.ts @@ -1,4 +1,3 @@ -'use client' import * as React from 'react' import type { diff --git a/packages/react-query/src/useQueries.ts b/packages/react-query/src/useQueries.ts index 50843fc5a4..d96ac1257b 100644 --- a/packages/react-query/src/useQueries.ts +++ b/packages/react-query/src/useQueries.ts @@ -1,4 +1,3 @@ -'use client' import * as React from 'react' import type { diff --git a/packages/react-query/src/useQuery.ts b/packages/react-query/src/useQuery.ts index cf97ba9c27..fc0c73d5de 100644 --- a/packages/react-query/src/useQuery.ts +++ b/packages/react-query/src/useQuery.ts @@ -1,4 +1,3 @@ -'use client' import type { QueryClient, QueryKey, DefaultError } from '@tanstack/query-core' import { QueryObserver } from '@tanstack/query-core' import type { From 31f1eb9075f476be9dff8735845db2abe8b13f01 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Sat, 27 May 2023 11:08:28 +0200 Subject: [PATCH 2/5] refactor: move queryOptions to its own file where we don't have a 'use client' directive, because we can call this function on the server as well --- packages/react-query/src/index.ts | 3 +- packages/react-query/src/queryOptions.ts | 42 +++++++++++++++++++++++ packages/react-query/src/useQuery.ts | 43 +++--------------------- 3 files changed, 48 insertions(+), 40 deletions(-) create mode 100644 packages/react-query/src/queryOptions.ts diff --git a/packages/react-query/src/index.ts b/packages/react-query/src/index.ts index 684e37e89e..bb69c52e75 100644 --- a/packages/react-query/src/index.ts +++ b/packages/react-query/src/index.ts @@ -7,7 +7,8 @@ export * from '@tanstack/query-core' export * from './types' export { useQueries } from './useQueries' export type { QueriesResults, QueriesOptions } from './useQueries' -export { useQuery, queryOptions } from './useQuery' +export { useQuery } from './useQuery' +export { queryOptions } from './queryOptions' export { QueryClientContext, QueryClientProvider, diff --git a/packages/react-query/src/queryOptions.ts b/packages/react-query/src/queryOptions.ts new file mode 100644 index 0000000000..aafe953036 --- /dev/null +++ b/packages/react-query/src/queryOptions.ts @@ -0,0 +1,42 @@ +import type { DefaultError, QueryKey } from '@tanstack/query-core' +import type { UseQueryOptions } from './types' + +export type UndefinedInitialDataOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = UseQueryOptions & { + initialData?: undefined +} + +export type DefinedInitialDataOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = UseQueryOptions & { + initialData: TQueryFnData | (() => TQueryFnData) +} + +export function queryOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +>( + options: UndefinedInitialDataOptions, +): UndefinedInitialDataOptions + +export function queryOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +>( + options: DefinedInitialDataOptions, +): DefinedInitialDataOptions + +export function queryOptions(options: unknown) { + return options +} diff --git a/packages/react-query/src/useQuery.ts b/packages/react-query/src/useQuery.ts index fc0c73d5de..9686596e1e 100644 --- a/packages/react-query/src/useQuery.ts +++ b/packages/react-query/src/useQuery.ts @@ -6,47 +6,12 @@ import type { UseQueryResult, } from './types' import { useBaseQuery } from './useBaseQuery' - -export function queryOptions< - TQueryFnData = unknown, - TError = DefaultError, - TData = TQueryFnData, - TQueryKey extends QueryKey = QueryKey, ->( - options: UndefinedInitialDataOptions, -): UndefinedInitialDataOptions - -export function queryOptions< - TQueryFnData = unknown, - TError = DefaultError, - TData = TQueryFnData, - TQueryKey extends QueryKey = QueryKey, ->( - options: DefinedInitialDataOptions, -): DefinedInitialDataOptions - -export function queryOptions(options: unknown) { - return options -} +import type { + DefinedInitialDataOptions, + UndefinedInitialDataOptions, +} from './queryOptions' // HOOK -type UndefinedInitialDataOptions< - TQueryFnData = unknown, - TError = DefaultError, - TData = TQueryFnData, - TQueryKey extends QueryKey = QueryKey, -> = UseQueryOptions & { - initialData?: undefined -} - -type DefinedInitialDataOptions< - TQueryFnData = unknown, - TError = DefaultError, - TData = TQueryFnData, - TQueryKey extends QueryKey = QueryKey, -> = UseQueryOptions & { - initialData: TQueryFnData | (() => TQueryFnData) -} export function useQuery< TQueryFnData = unknown, From 11a7c4d688ee3d4eacae83658e05c47073cf0dee Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Sat, 27 May 2023 11:08:38 +0200 Subject: [PATCH 3/5] Revert "refactor: remove 'use client' from non-components" This reverts commit 8ecac6688b01197c4c4010d3e240dfbca1895d50. --- packages/react-query/src/errorBoundaryUtils.ts | 1 + packages/react-query/src/{isRestoring.ts => isRestoring.tsx} | 1 + packages/react-query/src/useBaseQuery.ts | 1 + packages/react-query/src/useInfiniteQuery.ts | 1 + packages/react-query/src/useIsFetching.ts | 1 + packages/react-query/src/useMutation.ts | 1 + packages/react-query/src/useMutationState.ts | 1 + packages/react-query/src/useQueries.ts | 1 + packages/react-query/src/useQuery.ts | 1 + 9 files changed, 9 insertions(+) rename packages/react-query/src/{isRestoring.ts => isRestoring.tsx} (94%) diff --git a/packages/react-query/src/errorBoundaryUtils.ts b/packages/react-query/src/errorBoundaryUtils.ts index 3746379eac..9f4bb5320b 100644 --- a/packages/react-query/src/errorBoundaryUtils.ts +++ b/packages/react-query/src/errorBoundaryUtils.ts @@ -1,3 +1,4 @@ +'use client' import type { DefaultedQueryObserverOptions, Query, diff --git a/packages/react-query/src/isRestoring.ts b/packages/react-query/src/isRestoring.tsx similarity index 94% rename from packages/react-query/src/isRestoring.ts rename to packages/react-query/src/isRestoring.tsx index 3d8728e703..7d59c72507 100644 --- a/packages/react-query/src/isRestoring.ts +++ b/packages/react-query/src/isRestoring.tsx @@ -1,3 +1,4 @@ +'use client' import * as React from 'react' const IsRestoringContext = React.createContext(false) diff --git a/packages/react-query/src/useBaseQuery.ts b/packages/react-query/src/useBaseQuery.ts index e204ac057b..7fb7502df6 100644 --- a/packages/react-query/src/useBaseQuery.ts +++ b/packages/react-query/src/useBaseQuery.ts @@ -1,3 +1,4 @@ +'use client' import * as React from 'react' import type { QueryClient, QueryKey, QueryObserver } from '@tanstack/query-core' diff --git a/packages/react-query/src/useInfiniteQuery.ts b/packages/react-query/src/useInfiniteQuery.ts index cea7895c74..f1828e97c7 100644 --- a/packages/react-query/src/useInfiniteQuery.ts +++ b/packages/react-query/src/useInfiniteQuery.ts @@ -1,3 +1,4 @@ +'use client' import type { QueryObserver, QueryKey, diff --git a/packages/react-query/src/useIsFetching.ts b/packages/react-query/src/useIsFetching.ts index 1e67425365..6e1604aeae 100644 --- a/packages/react-query/src/useIsFetching.ts +++ b/packages/react-query/src/useIsFetching.ts @@ -1,3 +1,4 @@ +'use client' import * as React from 'react' import type { QueryClient, QueryFilters } from '@tanstack/query-core' import { notifyManager } from '@tanstack/query-core' diff --git a/packages/react-query/src/useMutation.ts b/packages/react-query/src/useMutation.ts index 888712c6ec..e8236769f9 100644 --- a/packages/react-query/src/useMutation.ts +++ b/packages/react-query/src/useMutation.ts @@ -1,3 +1,4 @@ +'use client' import * as React from 'react' import type { QueryClient, DefaultError } from '@tanstack/query-core' import { notifyManager, MutationObserver } from '@tanstack/query-core' diff --git a/packages/react-query/src/useMutationState.ts b/packages/react-query/src/useMutationState.ts index a4a6dbd89c..f8feb21b58 100644 --- a/packages/react-query/src/useMutationState.ts +++ b/packages/react-query/src/useMutationState.ts @@ -1,3 +1,4 @@ +'use client' import * as React from 'react' import type { diff --git a/packages/react-query/src/useQueries.ts b/packages/react-query/src/useQueries.ts index d96ac1257b..50843fc5a4 100644 --- a/packages/react-query/src/useQueries.ts +++ b/packages/react-query/src/useQueries.ts @@ -1,3 +1,4 @@ +'use client' import * as React from 'react' import type { diff --git a/packages/react-query/src/useQuery.ts b/packages/react-query/src/useQuery.ts index 9686596e1e..d9726f6e87 100644 --- a/packages/react-query/src/useQuery.ts +++ b/packages/react-query/src/useQuery.ts @@ -1,3 +1,4 @@ +'use client' import type { QueryClient, QueryKey, DefaultError } from '@tanstack/query-core' import { QueryObserver } from '@tanstack/query-core' import type { From e463241033fa9ba250737c2660e5a01f6d82b9d5 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Sat, 27 May 2023 11:09:22 +0200 Subject: [PATCH 4/5] refactor: rename isRestoring file --- packages/react-query/src/{isRestoring.tsx => isRestoring.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/react-query/src/{isRestoring.tsx => isRestoring.ts} (100%) diff --git a/packages/react-query/src/isRestoring.tsx b/packages/react-query/src/isRestoring.ts similarity index 100% rename from packages/react-query/src/isRestoring.tsx rename to packages/react-query/src/isRestoring.ts From 48ffbe218a71efff6dd80575e87926ece485d742 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Sat, 27 May 2023 13:45:28 +0200 Subject: [PATCH 5/5] chore: fix import --- packages/react-query/src/__tests__/useQuery.types.test.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/react-query/src/__tests__/useQuery.types.test.tsx b/packages/react-query/src/__tests__/useQuery.types.test.tsx index 2e38c64836..bf5699d0ad 100644 --- a/packages/react-query/src/__tests__/useQuery.types.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.types.test.tsx @@ -1,4 +1,5 @@ -import { queryOptions, useQuery } from '../useQuery' +import { useQuery } from '../useQuery' +import { queryOptions } from '../queryOptions' import type { Expect, Equal } from './utils' import { doNotExecute } from './utils'