@tanstack/react-query 5.59.10 → 5.59.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/legacy/index.cjs.map +1 -1
- package/build/legacy/index.d.cts +2 -2
- package/build/legacy/index.d.ts +2 -2
- package/build/legacy/index.js.map +1 -1
- package/build/legacy/infiniteQueryOptions.cjs.map +1 -1
- package/build/legacy/infiniteQueryOptions.d.cts +8 -2
- package/build/legacy/infiniteQueryOptions.d.ts +8 -2
- package/build/legacy/infiniteQueryOptions.js.map +1 -1
- package/build/legacy/queryOptions.cjs.map +1 -1
- package/build/legacy/queryOptions.d.cts +8 -2
- package/build/legacy/queryOptions.d.ts +8 -2
- package/build/legacy/queryOptions.js.map +1 -1
- package/build/legacy/types.cjs.map +1 -1
- package/build/legacy/types.d.cts +5 -3
- package/build/legacy/types.d.ts +5 -3
- package/build/legacy/useSuspenseInfiniteQuery.cjs.map +1 -1
- package/build/legacy/useSuspenseInfiniteQuery.js.map +1 -1
- package/build/legacy/useSuspenseQuery.cjs.map +1 -1
- package/build/legacy/useSuspenseQuery.js.map +1 -1
- package/build/modern/index.cjs.map +1 -1
- package/build/modern/index.d.cts +2 -2
- package/build/modern/index.d.ts +2 -2
- package/build/modern/index.js.map +1 -1
- package/build/modern/infiniteQueryOptions.cjs.map +1 -1
- package/build/modern/infiniteQueryOptions.d.cts +8 -2
- package/build/modern/infiniteQueryOptions.d.ts +8 -2
- package/build/modern/infiniteQueryOptions.js.map +1 -1
- package/build/modern/queryOptions.cjs.map +1 -1
- package/build/modern/queryOptions.d.cts +8 -2
- package/build/modern/queryOptions.d.ts +8 -2
- package/build/modern/queryOptions.js.map +1 -1
- package/build/modern/types.cjs.map +1 -1
- package/build/modern/types.d.cts +5 -3
- package/build/modern/types.d.ts +5 -3
- package/build/modern/useSuspenseInfiniteQuery.cjs.map +1 -1
- package/build/modern/useSuspenseInfiniteQuery.js.map +1 -1
- package/build/modern/useSuspenseQuery.cjs.map +1 -1
- package/build/modern/useSuspenseQuery.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/infiniteQueryOptions.test-d.tsx +13 -1
- package/src/__tests__/prefetch.test.tsx +7 -3
- package/src/__tests__/queryOptions.test-d.tsx +10 -0
- package/src/__tests__/suspense.test-d.tsx +29 -11
- package/src/__tests__/useSuspenseQueries.test-d.tsx +41 -18
- package/src/index.ts +2 -0
- package/src/infiniteQueryOptions.ts +56 -0
- package/src/queryOptions.ts +28 -0
- package/src/types.ts +22 -4
- package/src/useSuspenseInfiniteQuery.ts +1 -1
- package/src/useSuspenseQuery.ts +1 -1
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { DefaultError, QueryKey, InitialDataFunction, DataTag } from '@tanstack/query-core';
|
|
1
|
+
import { DefaultError, QueryKey, InitialDataFunction, OmitKeyof, SkipToken, DataTag } from '@tanstack/query-core';
|
|
2
2
|
import { UseQueryOptions } from './types.js';
|
|
3
3
|
|
|
4
4
|
type UndefinedInitialDataOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = UseQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
|
|
5
5
|
initialData?: undefined | InitialDataFunction<NonUndefinedGuard<TQueryFnData>> | NonUndefinedGuard<TQueryFnData>;
|
|
6
6
|
};
|
|
7
|
+
type UnusedSkipTokenOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = OmitKeyof<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryFn'> & {
|
|
8
|
+
queryFn: Exclude<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>['queryFn'], SkipToken>;
|
|
9
|
+
};
|
|
7
10
|
type NonUndefinedGuard<T> = T extends undefined ? never : T;
|
|
8
11
|
type DefinedInitialDataOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = UseQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
|
|
9
12
|
initialData: NonUndefinedGuard<TQueryFnData> | (() => NonUndefinedGuard<TQueryFnData>);
|
|
@@ -11,8 +14,11 @@ type DefinedInitialDataOptions<TQueryFnData = unknown, TError = DefaultError, TD
|
|
|
11
14
|
declare function queryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>): DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & {
|
|
12
15
|
queryKey: DataTag<TQueryKey, TQueryFnData>;
|
|
13
16
|
};
|
|
17
|
+
declare function queryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UnusedSkipTokenOptions<TQueryFnData, TError, TData, TQueryKey>): UnusedSkipTokenOptions<TQueryFnData, TError, TData, TQueryKey> & {
|
|
18
|
+
queryKey: DataTag<TQueryKey, TQueryFnData>;
|
|
19
|
+
};
|
|
14
20
|
declare function queryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>): UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & {
|
|
15
21
|
queryKey: DataTag<TQueryKey, TQueryFnData>;
|
|
16
22
|
};
|
|
17
23
|
|
|
18
|
-
export { type DefinedInitialDataOptions, type UndefinedInitialDataOptions, queryOptions };
|
|
24
|
+
export { type DefinedInitialDataOptions, type UndefinedInitialDataOptions, type UnusedSkipTokenOptions, queryOptions };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/queryOptions.ts"],"sourcesContent":["import type {\n DataTag,\n DefaultError,\n InitialDataFunction,\n QueryKey,\n} from '@tanstack/query-core'\nimport type { UseQueryOptions } from './types'\n\nexport type UndefinedInitialDataOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = UseQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {\n initialData?:\n | undefined\n | InitialDataFunction<NonUndefinedGuard<TQueryFnData>>\n | NonUndefinedGuard<TQueryFnData>\n}\n\ntype NonUndefinedGuard<T> = T extends undefined ? never : T\n\nexport type DefinedInitialDataOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = UseQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {\n initialData:\n | NonUndefinedGuard<TQueryFnData>\n | (() => NonUndefinedGuard<TQueryFnData>)\n}\n\nexport function queryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,\n): DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & {\n queryKey: DataTag<TQueryKey, TQueryFnData>\n}\n\nexport function queryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,\n): UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & {\n queryKey: DataTag<TQueryKey, TQueryFnData>\n}\n\nexport function queryOptions(options: unknown) {\n return options\n}\n"],"mappings":";
|
|
1
|
+
{"version":3,"sources":["../../src/queryOptions.ts"],"sourcesContent":["import type {\n DataTag,\n DefaultError,\n InitialDataFunction,\n OmitKeyof,\n QueryKey,\n SkipToken,\n} from '@tanstack/query-core'\nimport type { UseQueryOptions } from './types'\n\nexport type UndefinedInitialDataOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = UseQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {\n initialData?:\n | undefined\n | InitialDataFunction<NonUndefinedGuard<TQueryFnData>>\n | NonUndefinedGuard<TQueryFnData>\n}\n\nexport type UnusedSkipTokenOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = OmitKeyof<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryFn'\n> & {\n queryFn: Exclude<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>['queryFn'],\n SkipToken\n >\n}\n\ntype NonUndefinedGuard<T> = T extends undefined ? never : T\n\nexport type DefinedInitialDataOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = UseQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {\n initialData:\n | NonUndefinedGuard<TQueryFnData>\n | (() => NonUndefinedGuard<TQueryFnData>)\n}\n\nexport function queryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,\n): DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & {\n queryKey: DataTag<TQueryKey, TQueryFnData>\n}\n\nexport function queryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UnusedSkipTokenOptions<TQueryFnData, TError, TData, TQueryKey>,\n): UnusedSkipTokenOptions<TQueryFnData, TError, TData, TQueryKey> & {\n queryKey: DataTag<TQueryKey, TQueryFnData>\n}\n\nexport function queryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,\n): UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & {\n queryKey: DataTag<TQueryKey, TQueryFnData>\n}\n\nexport function queryOptions(options: unknown) {\n return options\n}\n"],"mappings":";AAmFO,SAAS,aAAa,SAAkB;AAC7C,SAAO;AACT;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/types.ts"],"sourcesContent":["/* istanbul ignore file */\n\nimport type {\n DefaultError,\n DefinedInfiniteQueryObserverResult,\n DefinedQueryObserverResult,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n MutateFunction,\n MutationObserverOptions,\n MutationObserverResult,\n OmitKeyof,\n Override,\n QueryKey,\n QueryObserverOptions,\n QueryObserverResult,\n} from '@tanstack/query-core'\n\nexport interface UseBaseQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > {}\n\nexport interface UseQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends OmitKeyof<\n UseBaseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,\n 'suspense'\n > {}\n\nexport interface UseSuspenseQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends OmitKeyof<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'enabled' | 'throwOnError' | 'placeholderData'\n > {}\n\nexport interface UseInfiniteQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> extends OmitKeyof<\n InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n 'suspense'\n > {}\n\nexport interface UseSuspenseInfiniteQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> extends OmitKeyof<\n UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n 'enabled' | 'throwOnError' | 'placeholderData'\n > {}\n\nexport type UseBaseQueryResult<\n TData = unknown,\n TError = DefaultError,\n> = QueryObserverResult<TData, TError>\n\nexport type UseQueryResult<\n TData = unknown,\n TError = DefaultError,\n> = UseBaseQueryResult<TData, TError>\n\nexport type UseSuspenseQueryResult<\n TData = unknown,\n TError = DefaultError,\n> = OmitKeyof<\n DefinedQueryObserverResult<TData, TError>,\n 'isPlaceholderData' | 'promise'\n>\n\nexport type DefinedUseQueryResult<\n TData = unknown,\n TError = DefaultError,\n> = DefinedQueryObserverResult<TData, TError>\n\nexport type UseInfiniteQueryResult<\n TData = unknown,\n TError = DefaultError,\n> = InfiniteQueryObserverResult<TData, TError>\n\nexport type DefinedUseInfiniteQueryResult<\n TData = unknown,\n TError = DefaultError,\n> = DefinedInfiniteQueryObserverResult<TData, TError>\n\nexport type UseSuspenseInfiniteQueryResult<\n TData = unknown,\n TError = DefaultError,\n> = OmitKeyof<\n DefinedInfiniteQueryObserverResult<TData, TError>,\n 'isPlaceholderData' | 'promise'\n>\n\nexport interface UseMutationOptions<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends OmitKeyof<\n MutationObserverOptions<TData, TError, TVariables, TContext>,\n '_defaulted'\n > {}\n\nexport type UseMutateFunction<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = (\n ...args: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutateAsyncFunction<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = MutateFunction<TData, TError, TVariables, TContext>\n\nexport type UseBaseMutationResult<\n TData = unknown,\n TError = DefaultError,\n TVariables = unknown,\n TContext = unknown,\n> = Override<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n { mutate: UseMutateFunction<TData, TError, TVariables, TContext> }\n> & { mutateAsync: UseMutateAsyncFunction<TData, TError, TVariables, TContext> }\n\nexport type UseMutationResult<\n TData = unknown,\n TError = DefaultError,\n TVariables = unknown,\n TContext = unknown,\n> = UseBaseMutationResult<TData, TError, TVariables, TContext>\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/types.ts"],"sourcesContent":["/* istanbul ignore file */\n\nimport type {\n DefaultError,\n DefinedInfiniteQueryObserverResult,\n DefinedQueryObserverResult,\n InfiniteQueryObserverOptions,\n InfiniteQueryObserverResult,\n MutateFunction,\n MutationObserverOptions,\n MutationObserverResult,\n OmitKeyof,\n Override,\n QueryKey,\n QueryObserverOptions,\n QueryObserverResult,\n SkipToken,\n} from '@tanstack/query-core'\n\nexport interface UseBaseQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > {}\n\nexport interface UseQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends OmitKeyof<\n UseBaseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,\n 'suspense'\n > {}\n\nexport interface UseSuspenseQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends OmitKeyof<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'queryFn' | 'enabled' | 'throwOnError' | 'placeholderData'\n > {\n queryFn: Exclude<\n UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>['queryFn'],\n SkipToken\n >\n}\n\nexport interface UseInfiniteQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> extends OmitKeyof<\n InfiniteQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n 'suspense'\n > {}\n\nexport interface UseSuspenseInfiniteQueryOptions<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n> extends OmitKeyof<\n UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >,\n 'queryFn' | 'enabled' | 'throwOnError' | 'placeholderData'\n > {\n queryFn: Exclude<\n UseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey,\n TPageParam\n >['queryFn'],\n SkipToken\n >\n}\n\nexport type UseBaseQueryResult<\n TData = unknown,\n TError = DefaultError,\n> = QueryObserverResult<TData, TError>\n\nexport type UseQueryResult<\n TData = unknown,\n TError = DefaultError,\n> = UseBaseQueryResult<TData, TError>\n\nexport type UseSuspenseQueryResult<\n TData = unknown,\n TError = DefaultError,\n> = OmitKeyof<\n DefinedQueryObserverResult<TData, TError>,\n 'isPlaceholderData' | 'promise'\n>\n\nexport type DefinedUseQueryResult<\n TData = unknown,\n TError = DefaultError,\n> = DefinedQueryObserverResult<TData, TError>\n\nexport type UseInfiniteQueryResult<\n TData = unknown,\n TError = DefaultError,\n> = InfiniteQueryObserverResult<TData, TError>\n\nexport type DefinedUseInfiniteQueryResult<\n TData = unknown,\n TError = DefaultError,\n> = DefinedInfiniteQueryObserverResult<TData, TError>\n\nexport type UseSuspenseInfiniteQueryResult<\n TData = unknown,\n TError = DefaultError,\n> = OmitKeyof<\n DefinedInfiniteQueryObserverResult<TData, TError>,\n 'isPlaceholderData' | 'promise'\n>\n\nexport interface UseMutationOptions<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends OmitKeyof<\n MutationObserverOptions<TData, TError, TVariables, TContext>,\n '_defaulted'\n > {}\n\nexport type UseMutateFunction<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = (\n ...args: Parameters<MutateFunction<TData, TError, TVariables, TContext>>\n) => void\n\nexport type UseMutateAsyncFunction<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> = MutateFunction<TData, TError, TVariables, TContext>\n\nexport type UseBaseMutationResult<\n TData = unknown,\n TError = DefaultError,\n TVariables = unknown,\n TContext = unknown,\n> = Override<\n MutationObserverResult<TData, TError, TVariables, TContext>,\n { mutate: UseMutateFunction<TData, TError, TVariables, TContext> }\n> & { mutateAsync: UseMutateAsyncFunction<TData, TError, TVariables, TContext> }\n\nexport type UseMutationResult<\n TData = unknown,\n TError = DefaultError,\n TVariables = unknown,\n TContext = unknown,\n> = UseBaseMutationResult<TData, TError, TVariables, TContext>\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|
package/build/modern/types.d.cts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { DefaultError, QueryKey, QueryObserverOptions, OmitKeyof, InfiniteQueryObserverOptions, QueryObserverResult, DefinedQueryObserverResult, InfiniteQueryObserverResult, DefinedInfiniteQueryObserverResult, MutationObserverOptions, MutateFunction, Override, MutationObserverResult } from '@tanstack/query-core';
|
|
1
|
+
import { DefaultError, QueryKey, QueryObserverOptions, OmitKeyof, SkipToken, InfiniteQueryObserverOptions, QueryObserverResult, DefinedQueryObserverResult, InfiniteQueryObserverResult, DefinedInfiniteQueryObserverResult, MutationObserverOptions, MutateFunction, Override, MutationObserverResult } from '@tanstack/query-core';
|
|
2
2
|
|
|
3
3
|
interface UseBaseQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey> {
|
|
4
4
|
}
|
|
5
5
|
interface UseQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends OmitKeyof<UseBaseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, 'suspense'> {
|
|
6
6
|
}
|
|
7
|
-
interface UseSuspenseQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends OmitKeyof<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'enabled' | 'throwOnError' | 'placeholderData'> {
|
|
7
|
+
interface UseSuspenseQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends OmitKeyof<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryFn' | 'enabled' | 'throwOnError' | 'placeholderData'> {
|
|
8
|
+
queryFn: Exclude<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>['queryFn'], SkipToken>;
|
|
8
9
|
}
|
|
9
10
|
interface UseInfiniteQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends OmitKeyof<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, 'suspense'> {
|
|
10
11
|
}
|
|
11
|
-
interface UseSuspenseInfiniteQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends OmitKeyof<UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, 'enabled' | 'throwOnError' | 'placeholderData'> {
|
|
12
|
+
interface UseSuspenseInfiniteQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends OmitKeyof<UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, 'queryFn' | 'enabled' | 'throwOnError' | 'placeholderData'> {
|
|
13
|
+
queryFn: Exclude<UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>['queryFn'], SkipToken>;
|
|
12
14
|
}
|
|
13
15
|
type UseBaseQueryResult<TData = unknown, TError = DefaultError> = QueryObserverResult<TData, TError>;
|
|
14
16
|
type UseQueryResult<TData = unknown, TError = DefaultError> = UseBaseQueryResult<TData, TError>;
|
package/build/modern/types.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { DefaultError, QueryKey, QueryObserverOptions, OmitKeyof, InfiniteQueryObserverOptions, QueryObserverResult, DefinedQueryObserverResult, InfiniteQueryObserverResult, DefinedInfiniteQueryObserverResult, MutationObserverOptions, MutateFunction, Override, MutationObserverResult } from '@tanstack/query-core';
|
|
1
|
+
import { DefaultError, QueryKey, QueryObserverOptions, OmitKeyof, SkipToken, InfiniteQueryObserverOptions, QueryObserverResult, DefinedQueryObserverResult, InfiniteQueryObserverResult, DefinedInfiniteQueryObserverResult, MutationObserverOptions, MutateFunction, Override, MutationObserverResult } from '@tanstack/query-core';
|
|
2
2
|
|
|
3
3
|
interface UseBaseQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey> {
|
|
4
4
|
}
|
|
5
5
|
interface UseQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends OmitKeyof<UseBaseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, 'suspense'> {
|
|
6
6
|
}
|
|
7
|
-
interface UseSuspenseQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends OmitKeyof<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'enabled' | 'throwOnError' | 'placeholderData'> {
|
|
7
|
+
interface UseSuspenseQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends OmitKeyof<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryFn' | 'enabled' | 'throwOnError' | 'placeholderData'> {
|
|
8
|
+
queryFn: Exclude<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>['queryFn'], SkipToken>;
|
|
8
9
|
}
|
|
9
10
|
interface UseInfiniteQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends OmitKeyof<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, 'suspense'> {
|
|
10
11
|
}
|
|
11
|
-
interface UseSuspenseInfiniteQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends OmitKeyof<UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, 'enabled' | 'throwOnError' | 'placeholderData'> {
|
|
12
|
+
interface UseSuspenseInfiniteQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends OmitKeyof<UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, 'queryFn' | 'enabled' | 'throwOnError' | 'placeholderData'> {
|
|
13
|
+
queryFn: Exclude<UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>['queryFn'], SkipToken>;
|
|
12
14
|
}
|
|
13
15
|
type UseBaseQueryResult<TData = unknown, TError = DefaultError> = QueryObserverResult<TData, TError>;
|
|
14
16
|
type UseQueryResult<TData = unknown, TError = DefaultError> = UseBaseQueryResult<TData, TError>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/useSuspenseInfiniteQuery.ts"],"sourcesContent":["'use client'\nimport { InfiniteQueryObserver, skipToken } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport { defaultThrowOnError } from './suspense'\nimport type {\n DefaultError,\n InfiniteData,\n InfiniteQueryObserverSuccessResult,\n QueryClient,\n QueryKey,\n QueryObserver,\n} from '@tanstack/query-core'\nimport type {\n UseSuspenseInfiniteQueryOptions,\n UseSuspenseInfiniteQueryResult,\n} from './types'\n\nexport function useSuspenseInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: UseSuspenseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseSuspenseInfiniteQueryResult<TData, TError> {\n if (process.env.NODE_ENV !== 'production') {\n if (options.queryFn === skipToken) {\n console.error('skipToken is not allowed for useSuspenseInfiniteQuery')\n }\n }\n\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError,\n },\n InfiniteQueryObserver as typeof QueryObserver,\n queryClient,\n ) as InfiniteQueryObserverSuccessResult<TData, TError>\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,wBAAiD;AACjD,0BAA6B;AAC7B,sBAAoC;AAc7B,SAAS,yBAOd,SAQA,aAC+C;AAC/C,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,
|
|
1
|
+
{"version":3,"sources":["../../src/useSuspenseInfiniteQuery.ts"],"sourcesContent":["'use client'\nimport { InfiniteQueryObserver, skipToken } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport { defaultThrowOnError } from './suspense'\nimport type {\n DefaultError,\n InfiniteData,\n InfiniteQueryObserverSuccessResult,\n QueryClient,\n QueryKey,\n QueryObserver,\n} from '@tanstack/query-core'\nimport type {\n UseSuspenseInfiniteQueryOptions,\n UseSuspenseInfiniteQueryResult,\n} from './types'\n\nexport function useSuspenseInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: UseSuspenseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseSuspenseInfiniteQueryResult<TData, TError> {\n if (process.env.NODE_ENV !== 'production') {\n if ((options.queryFn as any) === skipToken) {\n console.error('skipToken is not allowed for useSuspenseInfiniteQuery')\n }\n }\n\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError,\n },\n InfiniteQueryObserver as typeof QueryObserver,\n queryClient,\n ) as InfiniteQueryObserverSuccessResult<TData, TError>\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,wBAAiD;AACjD,0BAA6B;AAC7B,sBAAoC;AAc7B,SAAS,yBAOd,SAQA,aAC+C;AAC/C,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAK,QAAQ,YAAoB,6BAAW;AAC1C,cAAQ,MAAM,uDAAuD;AAAA,IACvE;AAAA,EACF;AAEA,aAAO;AAAA,IACL;AAAA,MACE,GAAG;AAAA,MACH,SAAS;AAAA,MACT,UAAU;AAAA,MACV,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/useSuspenseInfiniteQuery.ts"],"sourcesContent":["'use client'\nimport { InfiniteQueryObserver, skipToken } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport { defaultThrowOnError } from './suspense'\nimport type {\n DefaultError,\n InfiniteData,\n InfiniteQueryObserverSuccessResult,\n QueryClient,\n QueryKey,\n QueryObserver,\n} from '@tanstack/query-core'\nimport type {\n UseSuspenseInfiniteQueryOptions,\n UseSuspenseInfiniteQueryResult,\n} from './types'\n\nexport function useSuspenseInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: UseSuspenseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseSuspenseInfiniteQueryResult<TData, TError> {\n if (process.env.NODE_ENV !== 'production') {\n if (options.queryFn === skipToken) {\n console.error('skipToken is not allowed for useSuspenseInfiniteQuery')\n }\n }\n\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError,\n },\n InfiniteQueryObserver as typeof QueryObserver,\n queryClient,\n ) as InfiniteQueryObserverSuccessResult<TData, TError>\n}\n"],"mappings":";;;AACA,SAAS,uBAAuB,iBAAiB;AACjD,SAAS,oBAAoB;AAC7B,SAAS,2BAA2B;AAc7B,SAAS,yBAOd,SAQA,aAC+C;AAC/C,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,
|
|
1
|
+
{"version":3,"sources":["../../src/useSuspenseInfiniteQuery.ts"],"sourcesContent":["'use client'\nimport { InfiniteQueryObserver, skipToken } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport { defaultThrowOnError } from './suspense'\nimport type {\n DefaultError,\n InfiniteData,\n InfiniteQueryObserverSuccessResult,\n QueryClient,\n QueryKey,\n QueryObserver,\n} from '@tanstack/query-core'\nimport type {\n UseSuspenseInfiniteQueryOptions,\n UseSuspenseInfiniteQueryResult,\n} from './types'\n\nexport function useSuspenseInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = InfiniteData<TQueryFnData>,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: UseSuspenseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseSuspenseInfiniteQueryResult<TData, TError> {\n if (process.env.NODE_ENV !== 'production') {\n if ((options.queryFn as any) === skipToken) {\n console.error('skipToken is not allowed for useSuspenseInfiniteQuery')\n }\n }\n\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError,\n },\n InfiniteQueryObserver as typeof QueryObserver,\n queryClient,\n ) as InfiniteQueryObserverSuccessResult<TData, TError>\n}\n"],"mappings":";;;AACA,SAAS,uBAAuB,iBAAiB;AACjD,SAAS,oBAAoB;AAC7B,SAAS,2BAA2B;AAc7B,SAAS,yBAOd,SAQA,aAC+C;AAC/C,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAK,QAAQ,YAAoB,WAAW;AAC1C,cAAQ,MAAM,uDAAuD;AAAA,IACvE;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,MACE,GAAG;AAAA,MACH,SAAS;AAAA,MACT,UAAU;AAAA,MACV,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/useSuspenseQuery.ts"],"sourcesContent":["'use client'\nimport { QueryObserver, skipToken } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport { defaultThrowOnError } from './suspense'\nimport type { UseSuspenseQueryOptions, UseSuspenseQueryResult } from './types'\nimport type { DefaultError, QueryClient, QueryKey } from '@tanstack/query-core'\n\nexport function useSuspenseQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseSuspenseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n): UseSuspenseQueryResult<TData, TError> {\n if (process.env.NODE_ENV !== 'production') {\n if (options.queryFn === skipToken) {\n console.error('skipToken is not allowed for useSuspenseQuery')\n }\n }\n\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError,\n placeholderData: undefined,\n },\n QueryObserver,\n queryClient,\n ) as UseSuspenseQueryResult<TData, TError>\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,wBAAyC;AACzC,0BAA6B;AAC7B,sBAAoC;AAI7B,SAAS,iBAMd,SACA,aACuC;AACvC,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,
|
|
1
|
+
{"version":3,"sources":["../../src/useSuspenseQuery.ts"],"sourcesContent":["'use client'\nimport { QueryObserver, skipToken } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport { defaultThrowOnError } from './suspense'\nimport type { UseSuspenseQueryOptions, UseSuspenseQueryResult } from './types'\nimport type { DefaultError, QueryClient, QueryKey } from '@tanstack/query-core'\n\nexport function useSuspenseQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseSuspenseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n): UseSuspenseQueryResult<TData, TError> {\n if (process.env.NODE_ENV !== 'production') {\n if ((options.queryFn as any) === skipToken) {\n console.error('skipToken is not allowed for useSuspenseQuery')\n }\n }\n\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError,\n placeholderData: undefined,\n },\n QueryObserver,\n queryClient,\n ) as UseSuspenseQueryResult<TData, TError>\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,wBAAyC;AACzC,0BAA6B;AAC7B,sBAAoC;AAI7B,SAAS,iBAMd,SACA,aACuC;AACvC,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAK,QAAQ,YAAoB,6BAAW;AAC1C,cAAQ,MAAM,+CAA+C;AAAA,IAC/D;AAAA,EACF;AAEA,aAAO;AAAA,IACL;AAAA,MACE,GAAG;AAAA,MACH,SAAS;AAAA,MACT,UAAU;AAAA,MACV,cAAc;AAAA,MACd,iBAAiB;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/useSuspenseQuery.ts"],"sourcesContent":["'use client'\nimport { QueryObserver, skipToken } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport { defaultThrowOnError } from './suspense'\nimport type { UseSuspenseQueryOptions, UseSuspenseQueryResult } from './types'\nimport type { DefaultError, QueryClient, QueryKey } from '@tanstack/query-core'\n\nexport function useSuspenseQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseSuspenseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n): UseSuspenseQueryResult<TData, TError> {\n if (process.env.NODE_ENV !== 'production') {\n if (options.queryFn === skipToken) {\n console.error('skipToken is not allowed for useSuspenseQuery')\n }\n }\n\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError,\n placeholderData: undefined,\n },\n QueryObserver,\n queryClient,\n ) as UseSuspenseQueryResult<TData, TError>\n}\n"],"mappings":";;;AACA,SAAS,eAAe,iBAAiB;AACzC,SAAS,oBAAoB;AAC7B,SAAS,2BAA2B;AAI7B,SAAS,iBAMd,SACA,aACuC;AACvC,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,
|
|
1
|
+
{"version":3,"sources":["../../src/useSuspenseQuery.ts"],"sourcesContent":["'use client'\nimport { QueryObserver, skipToken } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport { defaultThrowOnError } from './suspense'\nimport type { UseSuspenseQueryOptions, UseSuspenseQueryResult } from './types'\nimport type { DefaultError, QueryClient, QueryKey } from '@tanstack/query-core'\n\nexport function useSuspenseQuery<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n options: UseSuspenseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n queryClient?: QueryClient,\n): UseSuspenseQueryResult<TData, TError> {\n if (process.env.NODE_ENV !== 'production') {\n if ((options.queryFn as any) === skipToken) {\n console.error('skipToken is not allowed for useSuspenseQuery')\n }\n }\n\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError,\n placeholderData: undefined,\n },\n QueryObserver,\n queryClient,\n ) as UseSuspenseQueryResult<TData, TError>\n}\n"],"mappings":";;;AACA,SAAS,eAAe,iBAAiB;AACzC,SAAS,oBAAoB;AAC7B,SAAS,2BAA2B;AAI7B,SAAS,iBAMd,SACA,aACuC;AACvC,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAK,QAAQ,YAAoB,WAAW;AAC1C,cAAQ,MAAM,+CAA+C;AAAA,IAC/D;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,MACE,GAAG;AAAA,MACH,SAAS;AAAA,MACT,UAAU;AAAA,MACV,cAAc;AAAA,MACd,iBAAiB;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expectTypeOf, it, test } from 'vitest'
|
|
2
|
-
import { QueryClient, dataTagSymbol } from '@tanstack/query-core'
|
|
2
|
+
import { QueryClient, dataTagSymbol, skipToken } from '@tanstack/query-core'
|
|
3
3
|
import { infiniteQueryOptions } from '../infiniteQueryOptions'
|
|
4
4
|
import { useInfiniteQuery } from '../useInfiniteQuery'
|
|
5
5
|
import { useSuspenseInfiniteQuery } from '../useSuspenseInfiniteQuery'
|
|
@@ -134,6 +134,18 @@ describe('infiniteQueryOptions', () => {
|
|
|
134
134
|
InfiniteData<string, unknown> | undefined
|
|
135
135
|
>()
|
|
136
136
|
})
|
|
137
|
+
it('should throw a type error when using queryFn with skipToken in a suspense query', () => {
|
|
138
|
+
const options = infiniteQueryOptions({
|
|
139
|
+
queryKey: ['key'],
|
|
140
|
+
queryFn:
|
|
141
|
+
Math.random() > 0.5 ? skipToken : () => Promise.resolve('string'),
|
|
142
|
+
getNextPageParam: () => 1,
|
|
143
|
+
initialPageParam: 1,
|
|
144
|
+
})
|
|
145
|
+
// @ts-expect-error TS2345
|
|
146
|
+
const { data } = useSuspenseInfiniteQuery(options)
|
|
147
|
+
expectTypeOf(data).toEqualTypeOf<InfiniteData<string, unknown>>()
|
|
148
|
+
})
|
|
137
149
|
|
|
138
150
|
test('should not be allowed to be passed to non-infinite query functions', () => {
|
|
139
151
|
const queryClient = new QueryClient()
|
|
@@ -12,7 +12,11 @@ import {
|
|
|
12
12
|
} from '..'
|
|
13
13
|
import { createQueryClient, queryKey, renderWithClient, sleep } from './utils'
|
|
14
14
|
|
|
15
|
-
import type {
|
|
15
|
+
import type {
|
|
16
|
+
InfiniteData,
|
|
17
|
+
UseSuspenseInfiniteQueryOptions,
|
|
18
|
+
UseSuspenseQueryOptions,
|
|
19
|
+
} from '..'
|
|
16
20
|
import type { Mock } from 'vitest'
|
|
17
21
|
|
|
18
22
|
const generateQueryFn = (data: string) =>
|
|
@@ -56,7 +60,7 @@ describe('usePrefetchQuery', () => {
|
|
|
56
60
|
const queryClient = createQueryClient({ queryCache })
|
|
57
61
|
|
|
58
62
|
function Suspended<TData = unknown>(props: {
|
|
59
|
-
queryOpts:
|
|
63
|
+
queryOpts: UseSuspenseQueryOptions<TData, Error, TData, Array<string>>
|
|
60
64
|
children?: React.ReactNode
|
|
61
65
|
}) {
|
|
62
66
|
const state = useSuspenseQuery(props.queryOpts)
|
|
@@ -303,7 +307,7 @@ describe('usePrefetchInfiniteQuery', () => {
|
|
|
303
307
|
const Fallback = vi.fn().mockImplementation(() => <div>Loading...</div>)
|
|
304
308
|
|
|
305
309
|
function Suspended<T = unknown>(props: {
|
|
306
|
-
queryOpts:
|
|
310
|
+
queryOpts: UseSuspenseInfiniteQueryOptions<
|
|
307
311
|
T,
|
|
308
312
|
Error,
|
|
309
313
|
InfiniteData<T>,
|
|
@@ -177,6 +177,16 @@ describe('queryOptions', () => {
|
|
|
177
177
|
expectTypeOf(data).toEqualTypeOf<unknown>()
|
|
178
178
|
})
|
|
179
179
|
|
|
180
|
+
it('should throw a type error when using queryFn with skipToken in a suspense query', () => {
|
|
181
|
+
const options = queryOptions({
|
|
182
|
+
queryKey: ['key'],
|
|
183
|
+
queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5),
|
|
184
|
+
})
|
|
185
|
+
// @ts-expect-error TS2345
|
|
186
|
+
const { data } = useSuspenseQuery(options)
|
|
187
|
+
expectTypeOf(data).toEqualTypeOf<number>()
|
|
188
|
+
})
|
|
189
|
+
|
|
180
190
|
it('should return the proper type when passed to QueriesObserver', () => {
|
|
181
191
|
const options = queryOptions({
|
|
182
192
|
queryKey: ['key'],
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { describe, expectTypeOf, it } from 'vitest'
|
|
2
|
+
import { skipToken } from '@tanstack/query-core'
|
|
2
3
|
import { useSuspenseQuery } from '../useSuspenseQuery'
|
|
3
4
|
import { useSuspenseInfiniteQuery } from '../useSuspenseInfiniteQuery'
|
|
4
|
-
import type { UseSuspenseQueryOptions } from '..'
|
|
5
5
|
import type { InfiniteData } from '@tanstack/query-core'
|
|
6
6
|
|
|
7
7
|
describe('useSuspenseQuery', () => {
|
|
@@ -23,6 +23,20 @@ describe('useSuspenseQuery', () => {
|
|
|
23
23
|
expectTypeOf(status).toEqualTypeOf<'error' | 'success'>()
|
|
24
24
|
})
|
|
25
25
|
|
|
26
|
+
it('should not allow skipToken in queryFn', () => {
|
|
27
|
+
useSuspenseQuery({
|
|
28
|
+
queryKey: ['key'],
|
|
29
|
+
// @ts-expect-error
|
|
30
|
+
queryFn: skipToken,
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
useSuspenseQuery({
|
|
34
|
+
queryKey: ['key'],
|
|
35
|
+
// @ts-expect-error
|
|
36
|
+
queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5),
|
|
37
|
+
})
|
|
38
|
+
})
|
|
39
|
+
|
|
26
40
|
it('should not allow placeholderData, enabled or throwOnError props', () => {
|
|
27
41
|
useSuspenseQuery({
|
|
28
42
|
queryKey: ['key'],
|
|
@@ -70,6 +84,20 @@ describe('useSuspenseInfiniteQuery', () => {
|
|
|
70
84
|
expectTypeOf(data).toEqualTypeOf<InfiniteData<number, unknown>>()
|
|
71
85
|
})
|
|
72
86
|
|
|
87
|
+
it('should not allow skipToken in queryFn', () => {
|
|
88
|
+
useSuspenseInfiniteQuery({
|
|
89
|
+
queryKey: ['key'],
|
|
90
|
+
// @ts-expect-error
|
|
91
|
+
queryFn: skipToken,
|
|
92
|
+
})
|
|
93
|
+
|
|
94
|
+
useSuspenseInfiniteQuery({
|
|
95
|
+
queryKey: ['key'],
|
|
96
|
+
// @ts-expect-error
|
|
97
|
+
queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5),
|
|
98
|
+
})
|
|
99
|
+
})
|
|
100
|
+
|
|
73
101
|
it('should not have pending status', () => {
|
|
74
102
|
const { status } = useSuspenseInfiniteQuery({
|
|
75
103
|
queryKey: ['key'],
|
|
@@ -122,14 +150,4 @@ describe('useSuspenseInfiniteQuery', () => {
|
|
|
122
150
|
// @ts-expect-error TS2339
|
|
123
151
|
query.isPlaceholderData
|
|
124
152
|
})
|
|
125
|
-
|
|
126
|
-
it('should not accept skipToken type for queryFn in useSuspenseQuery', () => {
|
|
127
|
-
const query: UseSuspenseQueryOptions = {
|
|
128
|
-
// @ts-expect-error
|
|
129
|
-
queryFn: skipToken,
|
|
130
|
-
queryKey: [1],
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
return query
|
|
134
|
-
})
|
|
135
153
|
})
|
|
@@ -89,6 +89,47 @@ describe('UseSuspenseQueries config object overload', () => {
|
|
|
89
89
|
expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>()
|
|
90
90
|
})
|
|
91
91
|
|
|
92
|
+
it('should not allow skipToken in queryFn', () => {
|
|
93
|
+
useSuspenseQueries({
|
|
94
|
+
queries: [
|
|
95
|
+
{
|
|
96
|
+
queryKey: ['key'],
|
|
97
|
+
// @ts-expect-error
|
|
98
|
+
queryFn: skipToken,
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
})
|
|
102
|
+
|
|
103
|
+
useSuspenseQueries({
|
|
104
|
+
queries: [
|
|
105
|
+
{
|
|
106
|
+
queryKey: ['key'],
|
|
107
|
+
// @ts-expect-error
|
|
108
|
+
queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5),
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
})
|
|
112
|
+
})
|
|
113
|
+
|
|
114
|
+
it('TData should have correct type when conditional skipToken is passed', () => {
|
|
115
|
+
const queryResults = useSuspenseQueries({
|
|
116
|
+
queries: [
|
|
117
|
+
{
|
|
118
|
+
queryKey: ['withSkipToken'],
|
|
119
|
+
// @ts-expect-error
|
|
120
|
+
queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5),
|
|
121
|
+
},
|
|
122
|
+
],
|
|
123
|
+
})
|
|
124
|
+
|
|
125
|
+
const firstResult = queryResults[0]
|
|
126
|
+
|
|
127
|
+
expectTypeOf(firstResult).toEqualTypeOf<
|
|
128
|
+
UseSuspenseQueryResult<number, Error>
|
|
129
|
+
>()
|
|
130
|
+
expectTypeOf(firstResult.data).toEqualTypeOf<number>()
|
|
131
|
+
})
|
|
132
|
+
|
|
92
133
|
describe('custom hook', () => {
|
|
93
134
|
it('should allow custom hooks using UseQueryOptions', () => {
|
|
94
135
|
type Data = string
|
|
@@ -113,22 +154,4 @@ describe('UseSuspenseQueries config object overload', () => {
|
|
|
113
154
|
expectTypeOf(data).toEqualTypeOf<Data>()
|
|
114
155
|
})
|
|
115
156
|
})
|
|
116
|
-
|
|
117
|
-
it('TData should have correct type when conditional skipToken is passed', () => {
|
|
118
|
-
const queryResults = useSuspenseQueries({
|
|
119
|
-
queries: [
|
|
120
|
-
{
|
|
121
|
-
queryKey: ['withSkipToken'],
|
|
122
|
-
queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5),
|
|
123
|
-
},
|
|
124
|
-
],
|
|
125
|
-
})
|
|
126
|
-
|
|
127
|
-
const firstResult = queryResults[0]
|
|
128
|
-
|
|
129
|
-
expectTypeOf(firstResult).toEqualTypeOf<
|
|
130
|
-
UseSuspenseQueryResult<number, Error>
|
|
131
|
-
>()
|
|
132
|
-
expectTypeOf(firstResult.data).toEqualTypeOf<number>()
|
|
133
|
-
})
|
|
134
157
|
})
|
package/src/index.ts
CHANGED
|
@@ -21,11 +21,13 @@ export { queryOptions } from './queryOptions'
|
|
|
21
21
|
export type {
|
|
22
22
|
DefinedInitialDataOptions,
|
|
23
23
|
UndefinedInitialDataOptions,
|
|
24
|
+
UnusedSkipTokenOptions,
|
|
24
25
|
} from './queryOptions'
|
|
25
26
|
export { infiniteQueryOptions } from './infiniteQueryOptions'
|
|
26
27
|
export type {
|
|
27
28
|
DefinedInitialDataInfiniteOptions,
|
|
28
29
|
UndefinedInitialDataInfiniteOptions,
|
|
30
|
+
UnusedSkipTokenInfiniteOptions,
|
|
29
31
|
} from './infiniteQueryOptions'
|
|
30
32
|
export {
|
|
31
33
|
QueryClientContext,
|
|
@@ -3,7 +3,9 @@ import type {
|
|
|
3
3
|
DefaultError,
|
|
4
4
|
InfiniteData,
|
|
5
5
|
InitialDataFunction,
|
|
6
|
+
OmitKeyof,
|
|
6
7
|
QueryKey,
|
|
8
|
+
SkipToken,
|
|
7
9
|
} from '@tanstack/query-core'
|
|
8
10
|
import type { UseInfiniteQueryOptions } from './types'
|
|
9
11
|
|
|
@@ -29,6 +31,36 @@ export type UndefinedInitialDataInfiniteOptions<
|
|
|
29
31
|
>
|
|
30
32
|
}
|
|
31
33
|
|
|
34
|
+
export type UnusedSkipTokenInfiniteOptions<
|
|
35
|
+
TQueryFnData,
|
|
36
|
+
TError = DefaultError,
|
|
37
|
+
TData = InfiniteData<TQueryFnData>,
|
|
38
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
39
|
+
TPageParam = unknown,
|
|
40
|
+
> = OmitKeyof<
|
|
41
|
+
UseInfiniteQueryOptions<
|
|
42
|
+
TQueryFnData,
|
|
43
|
+
TError,
|
|
44
|
+
TData,
|
|
45
|
+
TQueryFnData,
|
|
46
|
+
TQueryKey,
|
|
47
|
+
TPageParam
|
|
48
|
+
>,
|
|
49
|
+
'queryFn'
|
|
50
|
+
> & {
|
|
51
|
+
queryFn: Exclude<
|
|
52
|
+
UseInfiniteQueryOptions<
|
|
53
|
+
TQueryFnData,
|
|
54
|
+
TError,
|
|
55
|
+
TData,
|
|
56
|
+
TQueryFnData,
|
|
57
|
+
TQueryKey,
|
|
58
|
+
TPageParam
|
|
59
|
+
>['queryFn'],
|
|
60
|
+
SkipToken
|
|
61
|
+
>
|
|
62
|
+
}
|
|
63
|
+
|
|
32
64
|
type NonUndefinedGuard<T> = T extends undefined ? never : T
|
|
33
65
|
|
|
34
66
|
export type DefinedInitialDataInfiniteOptions<
|
|
@@ -75,6 +107,30 @@ export function infiniteQueryOptions<
|
|
|
75
107
|
queryKey: DataTag<TQueryKey, InfiniteData<TQueryFnData>>
|
|
76
108
|
}
|
|
77
109
|
|
|
110
|
+
export function infiniteQueryOptions<
|
|
111
|
+
TQueryFnData,
|
|
112
|
+
TError = DefaultError,
|
|
113
|
+
TData = InfiniteData<TQueryFnData>,
|
|
114
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
115
|
+
TPageParam = unknown,
|
|
116
|
+
>(
|
|
117
|
+
options: UnusedSkipTokenInfiniteOptions<
|
|
118
|
+
TQueryFnData,
|
|
119
|
+
TError,
|
|
120
|
+
TData,
|
|
121
|
+
TQueryKey,
|
|
122
|
+
TPageParam
|
|
123
|
+
>,
|
|
124
|
+
): UnusedSkipTokenInfiniteOptions<
|
|
125
|
+
TQueryFnData,
|
|
126
|
+
TError,
|
|
127
|
+
TData,
|
|
128
|
+
TQueryKey,
|
|
129
|
+
TPageParam
|
|
130
|
+
> & {
|
|
131
|
+
queryKey: DataTag<TQueryKey, InfiniteData<TQueryFnData>>
|
|
132
|
+
}
|
|
133
|
+
|
|
78
134
|
export function infiniteQueryOptions<
|
|
79
135
|
TQueryFnData,
|
|
80
136
|
TError = DefaultError,
|
package/src/queryOptions.ts
CHANGED
|
@@ -2,7 +2,9 @@ import type {
|
|
|
2
2
|
DataTag,
|
|
3
3
|
DefaultError,
|
|
4
4
|
InitialDataFunction,
|
|
5
|
+
OmitKeyof,
|
|
5
6
|
QueryKey,
|
|
7
|
+
SkipToken,
|
|
6
8
|
} from '@tanstack/query-core'
|
|
7
9
|
import type { UseQueryOptions } from './types'
|
|
8
10
|
|
|
@@ -18,6 +20,21 @@ export type UndefinedInitialDataOptions<
|
|
|
18
20
|
| NonUndefinedGuard<TQueryFnData>
|
|
19
21
|
}
|
|
20
22
|
|
|
23
|
+
export type UnusedSkipTokenOptions<
|
|
24
|
+
TQueryFnData = unknown,
|
|
25
|
+
TError = DefaultError,
|
|
26
|
+
TData = TQueryFnData,
|
|
27
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
28
|
+
> = OmitKeyof<
|
|
29
|
+
UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
30
|
+
'queryFn'
|
|
31
|
+
> & {
|
|
32
|
+
queryFn: Exclude<
|
|
33
|
+
UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>['queryFn'],
|
|
34
|
+
SkipToken
|
|
35
|
+
>
|
|
36
|
+
}
|
|
37
|
+
|
|
21
38
|
type NonUndefinedGuard<T> = T extends undefined ? never : T
|
|
22
39
|
|
|
23
40
|
export type DefinedInitialDataOptions<
|
|
@@ -42,6 +59,17 @@ export function queryOptions<
|
|
|
42
59
|
queryKey: DataTag<TQueryKey, TQueryFnData>
|
|
43
60
|
}
|
|
44
61
|
|
|
62
|
+
export function queryOptions<
|
|
63
|
+
TQueryFnData = unknown,
|
|
64
|
+
TError = DefaultError,
|
|
65
|
+
TData = TQueryFnData,
|
|
66
|
+
TQueryKey extends QueryKey = QueryKey,
|
|
67
|
+
>(
|
|
68
|
+
options: UnusedSkipTokenOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
69
|
+
): UnusedSkipTokenOptions<TQueryFnData, TError, TData, TQueryKey> & {
|
|
70
|
+
queryKey: DataTag<TQueryKey, TQueryFnData>
|
|
71
|
+
}
|
|
72
|
+
|
|
45
73
|
export function queryOptions<
|
|
46
74
|
TQueryFnData = unknown,
|
|
47
75
|
TError = DefaultError,
|
package/src/types.ts
CHANGED
|
@@ -14,6 +14,7 @@ import type {
|
|
|
14
14
|
QueryKey,
|
|
15
15
|
QueryObserverOptions,
|
|
16
16
|
QueryObserverResult,
|
|
17
|
+
SkipToken,
|
|
17
18
|
} from '@tanstack/query-core'
|
|
18
19
|
|
|
19
20
|
export interface UseBaseQueryOptions<
|
|
@@ -47,8 +48,13 @@ export interface UseSuspenseQueryOptions<
|
|
|
47
48
|
TQueryKey extends QueryKey = QueryKey,
|
|
48
49
|
> extends OmitKeyof<
|
|
49
50
|
UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
|
|
50
|
-
'enabled' | 'throwOnError' | 'placeholderData'
|
|
51
|
-
> {
|
|
51
|
+
'queryFn' | 'enabled' | 'throwOnError' | 'placeholderData'
|
|
52
|
+
> {
|
|
53
|
+
queryFn: Exclude<
|
|
54
|
+
UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>['queryFn'],
|
|
55
|
+
SkipToken
|
|
56
|
+
>
|
|
57
|
+
}
|
|
52
58
|
|
|
53
59
|
export interface UseInfiniteQueryOptions<
|
|
54
60
|
TQueryFnData = unknown,
|
|
@@ -85,8 +91,20 @@ export interface UseSuspenseInfiniteQueryOptions<
|
|
|
85
91
|
TQueryKey,
|
|
86
92
|
TPageParam
|
|
87
93
|
>,
|
|
88
|
-
'enabled' | 'throwOnError' | 'placeholderData'
|
|
89
|
-
> {
|
|
94
|
+
'queryFn' | 'enabled' | 'throwOnError' | 'placeholderData'
|
|
95
|
+
> {
|
|
96
|
+
queryFn: Exclude<
|
|
97
|
+
UseInfiniteQueryOptions<
|
|
98
|
+
TQueryFnData,
|
|
99
|
+
TError,
|
|
100
|
+
TData,
|
|
101
|
+
TQueryData,
|
|
102
|
+
TQueryKey,
|
|
103
|
+
TPageParam
|
|
104
|
+
>['queryFn'],
|
|
105
|
+
SkipToken
|
|
106
|
+
>
|
|
107
|
+
}
|
|
90
108
|
|
|
91
109
|
export type UseBaseQueryResult<
|
|
92
110
|
TData = unknown,
|
|
@@ -33,7 +33,7 @@ export function useSuspenseInfiniteQuery<
|
|
|
33
33
|
queryClient?: QueryClient,
|
|
34
34
|
): UseSuspenseInfiniteQueryResult<TData, TError> {
|
|
35
35
|
if (process.env.NODE_ENV !== 'production') {
|
|
36
|
-
if (options.queryFn === skipToken) {
|
|
36
|
+
if ((options.queryFn as any) === skipToken) {
|
|
37
37
|
console.error('skipToken is not allowed for useSuspenseInfiniteQuery')
|
|
38
38
|
}
|
|
39
39
|
}
|
package/src/useSuspenseQuery.ts
CHANGED
|
@@ -15,7 +15,7 @@ export function useSuspenseQuery<
|
|
|
15
15
|
queryClient?: QueryClient,
|
|
16
16
|
): UseSuspenseQueryResult<TData, TError> {
|
|
17
17
|
if (process.env.NODE_ENV !== 'production') {
|
|
18
|
-
if (options.queryFn === skipToken) {
|
|
18
|
+
if ((options.queryFn as any) === skipToken) {
|
|
19
19
|
console.error('skipToken is not allowed for useSuspenseQuery')
|
|
20
20
|
}
|
|
21
21
|
}
|