@octanejs/tanstack-query 0.1.2

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.
@@ -0,0 +1,33 @@
1
+ // Verbatim port of @tanstack/react-query's mutationOptions.ts — a typed identity helper
2
+ import type { DefaultError, WithRequired } from '@tanstack/query-core';
3
+ import type { UseMutationOptions } from './types';
4
+
5
+ export function mutationOptions<
6
+ TData = unknown,
7
+ TError = DefaultError,
8
+ TVariables = void,
9
+ TOnMutateResult = unknown,
10
+ >(
11
+ options: WithRequired<
12
+ UseMutationOptions<TData, TError, TVariables, TOnMutateResult>,
13
+ 'mutationKey'
14
+ >,
15
+ ): WithRequired<UseMutationOptions<TData, TError, TVariables, TOnMutateResult>, 'mutationKey'>;
16
+ export function mutationOptions<
17
+ TData = unknown,
18
+ TError = DefaultError,
19
+ TVariables = void,
20
+ TOnMutateResult = unknown,
21
+ >(
22
+ options: Omit<UseMutationOptions<TData, TError, TVariables, TOnMutateResult>, 'mutationKey'>,
23
+ ): Omit<UseMutationOptions<TData, TError, TVariables, TOnMutateResult>, 'mutationKey'>;
24
+ export function mutationOptions<
25
+ TData = unknown,
26
+ TError = DefaultError,
27
+ TVariables = void,
28
+ TOnMutateResult = unknown,
29
+ >(
30
+ options: UseMutationOptions<TData, TError, TVariables, TOnMutateResult>,
31
+ ): UseMutationOptions<TData, TError, TVariables, TOnMutateResult> {
32
+ return options;
33
+ }
@@ -0,0 +1,167 @@
1
+ // The useQueries option/result tuple types — a 1:1 port of the type block in
2
+ // @tanstack/react-query's useQueries.ts (pure query-core generics, no React).
3
+ // `GetUseQueryOptionsForUseQueries` / `GetUseQueryResult` recursively unwrap
4
+ // per-entry generics so tuple inputs infer per-index option/result types.
5
+ import type { UseQueryOptions, UseQueryResult, DefinedUseQueryResult } from './types';
6
+ import type {
7
+ DefaultError,
8
+ OmitKeyof,
9
+ QueriesPlaceholderDataFunction,
10
+ QueryFunction,
11
+ QueryKey,
12
+ ThrowOnError,
13
+ } from '@tanstack/query-core';
14
+
15
+ // This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.
16
+ // `placeholderData` function always gets undefined passed
17
+ type UseQueryOptionsForUseQueries<
18
+ TQueryFnData = unknown,
19
+ TError = DefaultError,
20
+ TData = TQueryFnData,
21
+ TQueryKey extends QueryKey = QueryKey,
22
+ > = OmitKeyof<
23
+ UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
24
+ 'placeholderData' | 'subscribed'
25
+ > & {
26
+ placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>;
27
+ };
28
+
29
+ // Avoid TS depth-limit error in case of large array literal
30
+ type MAXIMUM_DEPTH = 20;
31
+
32
+ // Widen the type of the symbol to enable type inference even if skipToken is not immutable.
33
+ type SkipTokenForUseQueries = symbol;
34
+
35
+ type GetUseQueryOptionsForUseQueries<T> =
36
+ // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }
37
+ T extends {
38
+ queryFnData: infer TQueryFnData;
39
+ error?: infer TError;
40
+ data: infer TData;
41
+ }
42
+ ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>
43
+ : T extends { queryFnData: infer TQueryFnData; error?: infer TError }
44
+ ? UseQueryOptionsForUseQueries<TQueryFnData, TError>
45
+ : T extends { data: infer TData; error?: infer TError }
46
+ ? UseQueryOptionsForUseQueries<unknown, TError, TData>
47
+ : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]
48
+ T extends [infer TQueryFnData, infer TError, infer TData]
49
+ ? UseQueryOptionsForUseQueries<TQueryFnData, TError, TData>
50
+ : T extends [infer TQueryFnData, infer TError]
51
+ ? UseQueryOptionsForUseQueries<TQueryFnData, TError>
52
+ : T extends [infer TQueryFnData]
53
+ ? UseQueryOptionsForUseQueries<TQueryFnData>
54
+ : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided
55
+ T extends {
56
+ queryFn?:
57
+ | QueryFunction<infer TQueryFnData, infer TQueryKey>
58
+ | SkipTokenForUseQueries;
59
+ select?: (data: any) => infer TData;
60
+ throwOnError?: ThrowOnError<any, infer TError, any, any>;
61
+ }
62
+ ? UseQueryOptionsForUseQueries<
63
+ TQueryFnData,
64
+ unknown extends TError ? DefaultError : TError,
65
+ unknown extends TData ? TQueryFnData : TData,
66
+ TQueryKey
67
+ >
68
+ : // Fallback
69
+ UseQueryOptionsForUseQueries;
70
+
71
+ // A defined initialData setting should return a DefinedUseQueryResult rather than UseQueryResult
72
+ type GetDefinedOrUndefinedQueryResult<T, TData, TError = unknown> = T extends {
73
+ initialData?: infer TInitialData;
74
+ }
75
+ ? unknown extends TInitialData
76
+ ? UseQueryResult<TData, TError>
77
+ : TInitialData extends TData
78
+ ? DefinedUseQueryResult<TData, TError>
79
+ : TInitialData extends () => infer TInitialDataResult
80
+ ? unknown extends TInitialDataResult
81
+ ? UseQueryResult<TData, TError>
82
+ : TInitialDataResult extends TData
83
+ ? DefinedUseQueryResult<TData, TError>
84
+ : UseQueryResult<TData, TError>
85
+ : UseQueryResult<TData, TError>
86
+ : UseQueryResult<TData, TError>;
87
+
88
+ type GetUseQueryResult<T> =
89
+ // Part 1: responsible for mapping explicit type parameter to function result, if object
90
+ T extends { queryFnData: any; error?: infer TError; data: infer TData }
91
+ ? GetDefinedOrUndefinedQueryResult<T, TData, TError>
92
+ : T extends { queryFnData: infer TQueryFnData; error?: infer TError }
93
+ ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData, TError>
94
+ : T extends { data: infer TData; error?: infer TError }
95
+ ? GetDefinedOrUndefinedQueryResult<T, TData, TError>
96
+ : // Part 2: responsible for mapping explicit type parameter to function result, if tuple
97
+ T extends [any, infer TError, infer TData]
98
+ ? GetDefinedOrUndefinedQueryResult<T, TData, TError>
99
+ : T extends [infer TQueryFnData, infer TError]
100
+ ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData, TError>
101
+ : T extends [infer TQueryFnData]
102
+ ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData>
103
+ : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided
104
+ T extends {
105
+ queryFn?: QueryFunction<infer TQueryFnData, any> | SkipTokenForUseQueries;
106
+ select?: (data: any) => infer TData;
107
+ throwOnError?: ThrowOnError<any, infer TError, any, any>;
108
+ }
109
+ ? GetDefinedOrUndefinedQueryResult<
110
+ T,
111
+ unknown extends TData ? TQueryFnData : TData,
112
+ unknown extends TError ? DefaultError : TError
113
+ >
114
+ : // Fallback
115
+ UseQueryResult;
116
+
117
+ /**
118
+ * QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param
119
+ */
120
+ export type QueriesOptions<
121
+ T extends Array<any>,
122
+ TResults extends Array<any> = [],
123
+ TDepth extends ReadonlyArray<number> = [],
124
+ > = TDepth['length'] extends MAXIMUM_DEPTH
125
+ ? Array<UseQueryOptionsForUseQueries>
126
+ : T extends []
127
+ ? []
128
+ : T extends [infer Head]
129
+ ? [...TResults, GetUseQueryOptionsForUseQueries<Head>]
130
+ : T extends [infer Head, ...infer Tails]
131
+ ? QueriesOptions<
132
+ [...Tails],
133
+ [...TResults, GetUseQueryOptionsForUseQueries<Head>],
134
+ [...TDepth, 1]
135
+ >
136
+ : ReadonlyArray<unknown> extends T
137
+ ? T
138
+ : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!
139
+ // use this to infer the param types in the case of Array.map() argument
140
+ T extends Array<
141
+ UseQueryOptionsForUseQueries<
142
+ infer TQueryFnData,
143
+ infer TError,
144
+ infer TData,
145
+ infer TQueryKey
146
+ >
147
+ >
148
+ ? Array<UseQueryOptionsForUseQueries<TQueryFnData, TError, TData, TQueryKey>>
149
+ : // Fallback
150
+ Array<UseQueryOptionsForUseQueries>;
151
+
152
+ /**
153
+ * QueriesResults reducer recursively maps type param to results
154
+ */
155
+ export type QueriesResults<
156
+ T extends Array<any>,
157
+ TResults extends Array<any> = [],
158
+ TDepth extends ReadonlyArray<number> = [],
159
+ > = TDepth['length'] extends MAXIMUM_DEPTH
160
+ ? Array<UseQueryResult>
161
+ : T extends []
162
+ ? []
163
+ : T extends [infer Head]
164
+ ? [...TResults, GetUseQueryResult<Head>]
165
+ : T extends [infer Head, ...infer Tails]
166
+ ? QueriesResults<[...Tails], [...TResults, GetUseQueryResult<Head>], [...TDepth, 1]>
167
+ : { [K in keyof T]: GetUseQueryResult<T[K]> };
@@ -0,0 +1,83 @@
1
+ // Verbatim port of @tanstack/react-query's queryOptions.ts — a typed identity helper
2
+ import type {
3
+ DataTag,
4
+ DefaultError,
5
+ InitialDataFunction,
6
+ NonUndefinedGuard,
7
+ OmitKeyof,
8
+ QueryFunction,
9
+ QueryKey,
10
+ SkipToken,
11
+ } from '@tanstack/query-core';
12
+ import type { UseQueryOptions } from './types';
13
+
14
+ export type UndefinedInitialDataOptions<
15
+ TQueryFnData = unknown,
16
+ TError = DefaultError,
17
+ TData = TQueryFnData,
18
+ TQueryKey extends QueryKey = QueryKey,
19
+ > = UseQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
20
+ initialData?:
21
+ | undefined
22
+ | InitialDataFunction<NonUndefinedGuard<TQueryFnData>>
23
+ | NonUndefinedGuard<TQueryFnData>;
24
+ };
25
+
26
+ export type UnusedSkipTokenOptions<
27
+ TQueryFnData = unknown,
28
+ TError = DefaultError,
29
+ TData = TQueryFnData,
30
+ TQueryKey extends QueryKey = QueryKey,
31
+ > = OmitKeyof<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryFn'> & {
32
+ queryFn?: Exclude<
33
+ UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>['queryFn'],
34
+ SkipToken | undefined
35
+ >;
36
+ };
37
+
38
+ export type DefinedInitialDataOptions<
39
+ TQueryFnData = unknown,
40
+ TError = DefaultError,
41
+ TData = TQueryFnData,
42
+ TQueryKey extends QueryKey = QueryKey,
43
+ > = Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryFn'> & {
44
+ initialData: NonUndefinedGuard<TQueryFnData> | (() => NonUndefinedGuard<TQueryFnData>);
45
+ queryFn?: QueryFunction<TQueryFnData, TQueryKey>;
46
+ };
47
+
48
+ export function queryOptions<
49
+ TQueryFnData = unknown,
50
+ TError = DefaultError,
51
+ TData = TQueryFnData,
52
+ TQueryKey extends QueryKey = QueryKey,
53
+ >(
54
+ options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
55
+ ): DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & {
56
+ queryKey: DataTag<TQueryKey, TQueryFnData, TError>;
57
+ };
58
+
59
+ export function queryOptions<
60
+ TQueryFnData = unknown,
61
+ TError = DefaultError,
62
+ TData = TQueryFnData,
63
+ TQueryKey extends QueryKey = QueryKey,
64
+ >(
65
+ options: UnusedSkipTokenOptions<TQueryFnData, TError, TData, TQueryKey>,
66
+ ): UnusedSkipTokenOptions<TQueryFnData, TError, TData, TQueryKey> & {
67
+ queryKey: DataTag<TQueryKey, TQueryFnData, TError>;
68
+ };
69
+
70
+ export function queryOptions<
71
+ TQueryFnData = unknown,
72
+ TError = DefaultError,
73
+ TData = TQueryFnData,
74
+ TQueryKey extends QueryKey = QueryKey,
75
+ >(
76
+ options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
77
+ ): UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & {
78
+ queryKey: DataTag<TQueryKey, TQueryFnData, TError>;
79
+ };
80
+
81
+ export function queryOptions(options: unknown) {
82
+ return options;
83
+ }
@@ -0,0 +1,141 @@
1
+ // The useSuspenseQueries option/result tuple types — a 1:1 port of the type
2
+ // block in @tanstack/react-query's useSuspenseQueries.ts (pure query-core
3
+ // generics, no React).
4
+ import type { UseSuspenseQueryOptions, UseSuspenseQueryResult } from './types';
5
+ import type { DefaultError, QueryFunction, ThrowOnError } from '@tanstack/query-core';
6
+
7
+ // Avoid TS depth-limit error in case of large array literal
8
+ type MAXIMUM_DEPTH = 20;
9
+
10
+ // Widen the type of the symbol to enable type inference even if skipToken is not immutable.
11
+ type SkipTokenForUseQueries = symbol;
12
+
13
+ type GetUseSuspenseQueryOptions<T> =
14
+ // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }
15
+ T extends {
16
+ queryFnData: infer TQueryFnData;
17
+ error?: infer TError;
18
+ data: infer TData;
19
+ }
20
+ ? UseSuspenseQueryOptions<TQueryFnData, TError, TData>
21
+ : T extends { queryFnData: infer TQueryFnData; error?: infer TError }
22
+ ? UseSuspenseQueryOptions<TQueryFnData, TError>
23
+ : T extends { data: infer TData; error?: infer TError }
24
+ ? UseSuspenseQueryOptions<unknown, TError, TData>
25
+ : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]
26
+ T extends [infer TQueryFnData, infer TError, infer TData]
27
+ ? UseSuspenseQueryOptions<TQueryFnData, TError, TData>
28
+ : T extends [infer TQueryFnData, infer TError]
29
+ ? UseSuspenseQueryOptions<TQueryFnData, TError>
30
+ : T extends [infer TQueryFnData]
31
+ ? UseSuspenseQueryOptions<TQueryFnData>
32
+ : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided
33
+ T extends {
34
+ queryFn?:
35
+ | QueryFunction<infer TQueryFnData, infer TQueryKey>
36
+ | SkipTokenForUseQueries;
37
+ select?: (data: any) => infer TData;
38
+ throwOnError?: ThrowOnError<any, infer TError, any, any>;
39
+ }
40
+ ? UseSuspenseQueryOptions<TQueryFnData, TError, TData, TQueryKey>
41
+ : T extends {
42
+ queryFn?:
43
+ | QueryFunction<infer TQueryFnData, infer TQueryKey>
44
+ | SkipTokenForUseQueries;
45
+ throwOnError?: ThrowOnError<any, infer TError, any, any>;
46
+ }
47
+ ? UseSuspenseQueryOptions<TQueryFnData, TError, TQueryFnData, TQueryKey>
48
+ : // Fallback
49
+ UseSuspenseQueryOptions;
50
+
51
+ type GetUseSuspenseQueryResult<T> =
52
+ // Part 1: responsible for mapping explicit type parameter to function result, if object
53
+ T extends { queryFnData: any; error?: infer TError; data: infer TData }
54
+ ? UseSuspenseQueryResult<TData, TError>
55
+ : T extends { queryFnData: infer TQueryFnData; error?: infer TError }
56
+ ? UseSuspenseQueryResult<TQueryFnData, TError>
57
+ : T extends { data: infer TData; error?: infer TError }
58
+ ? UseSuspenseQueryResult<TData, TError>
59
+ : // Part 2: responsible for mapping explicit type parameter to function result, if tuple
60
+ T extends [any, infer TError, infer TData]
61
+ ? UseSuspenseQueryResult<TData, TError>
62
+ : T extends [infer TQueryFnData, infer TError]
63
+ ? UseSuspenseQueryResult<TQueryFnData, TError>
64
+ : T extends [infer TQueryFnData]
65
+ ? UseSuspenseQueryResult<TQueryFnData>
66
+ : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided
67
+ T extends {
68
+ queryFn?: QueryFunction<infer TQueryFnData, any> | SkipTokenForUseQueries;
69
+ select?: (data: any) => infer TData;
70
+ throwOnError?: ThrowOnError<any, infer TError, any, any>;
71
+ }
72
+ ? UseSuspenseQueryResult<
73
+ unknown extends TData ? TQueryFnData : TData,
74
+ unknown extends TError ? DefaultError : TError
75
+ >
76
+ : T extends {
77
+ queryFn?: QueryFunction<infer TQueryFnData, any> | SkipTokenForUseQueries;
78
+ throwOnError?: ThrowOnError<any, infer TError, any, any>;
79
+ }
80
+ ? UseSuspenseQueryResult<
81
+ TQueryFnData,
82
+ unknown extends TError ? DefaultError : TError
83
+ >
84
+ : // Fallback
85
+ UseSuspenseQueryResult;
86
+
87
+ /**
88
+ * SuspenseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param
89
+ */
90
+ export type SuspenseQueriesOptions<
91
+ T extends Array<any>,
92
+ TResults extends Array<any> = [],
93
+ TDepth extends ReadonlyArray<number> = [],
94
+ > = TDepth['length'] extends MAXIMUM_DEPTH
95
+ ? Array<UseSuspenseQueryOptions>
96
+ : T extends []
97
+ ? []
98
+ : T extends [infer Head]
99
+ ? [...TResults, GetUseSuspenseQueryOptions<Head>]
100
+ : T extends [infer Head, ...infer Tails]
101
+ ? SuspenseQueriesOptions<
102
+ [...Tails],
103
+ [...TResults, GetUseSuspenseQueryOptions<Head>],
104
+ [...TDepth, 1]
105
+ >
106
+ : Array<unknown> extends T
107
+ ? T
108
+ : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!
109
+ // use this to infer the param types in the case of Array.map() argument
110
+ T extends Array<
111
+ UseSuspenseQueryOptions<
112
+ infer TQueryFnData,
113
+ infer TError,
114
+ infer TData,
115
+ infer TQueryKey
116
+ >
117
+ >
118
+ ? Array<UseSuspenseQueryOptions<TQueryFnData, TError, TData, TQueryKey>>
119
+ : // Fallback
120
+ Array<UseSuspenseQueryOptions>;
121
+
122
+ /**
123
+ * SuspenseQueriesResults reducer recursively maps type param to results
124
+ */
125
+ export type SuspenseQueriesResults<
126
+ T extends Array<any>,
127
+ TResults extends Array<any> = [],
128
+ TDepth extends ReadonlyArray<number> = [],
129
+ > = TDepth['length'] extends MAXIMUM_DEPTH
130
+ ? Array<UseSuspenseQueryResult>
131
+ : T extends []
132
+ ? []
133
+ : T extends [infer Head]
134
+ ? [...TResults, GetUseSuspenseQueryResult<Head>]
135
+ : T extends [infer Head, ...infer Tails]
136
+ ? SuspenseQueriesResults<
137
+ [...Tails],
138
+ [...TResults, GetUseSuspenseQueryResult<Head>],
139
+ [...TDepth, 1]
140
+ >
141
+ : { [K in keyof T]: GetUseSuspenseQueryResult<T[K]> };
package/src/types.ts ADDED
@@ -0,0 +1,232 @@
1
+ // The binding-level type surface — a 1:1 port of @tanstack/react-query's
2
+ // types.ts (it is built entirely on query-core generics; nothing here is
3
+ // React-specific), plus the component prop / context-value types at the bottom
4
+ // (where upstream's React.ReactNode becomes octane's `unknown` renderable).
5
+ import type {
6
+ DefaultError,
7
+ DefinedInfiniteQueryObserverResult,
8
+ DefinedQueryObserverResult,
9
+ DehydratedState,
10
+ DistributiveOmit,
11
+ FetchQueryOptions,
12
+ HydrateOptions,
13
+ InfiniteQueryObserverOptions,
14
+ InfiniteQueryObserverResult,
15
+ MutateFunction,
16
+ MutationObserverOptions,
17
+ MutationObserverResult,
18
+ OmitKeyof,
19
+ Override,
20
+ QueryClient,
21
+ QueryKey,
22
+ QueryObserverOptions,
23
+ QueryObserverResult,
24
+ SkipToken,
25
+ } from '@tanstack/query-core';
26
+
27
+ export type AnyUseBaseQueryOptions = UseBaseQueryOptions<any, any, any, any, any>;
28
+ export interface UseBaseQueryOptions<
29
+ TQueryFnData = unknown,
30
+ TError = DefaultError,
31
+ TData = TQueryFnData,
32
+ TQueryData = TQueryFnData,
33
+ TQueryKey extends QueryKey = QueryKey,
34
+ > extends QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey> {
35
+ /**
36
+ * Set this to `false` to unsubscribe this observer from updates to the query cache.
37
+ * Defaults to `true`.
38
+ */
39
+ subscribed?: boolean;
40
+ }
41
+
42
+ export interface UsePrefetchQueryOptions<
43
+ TQueryFnData = unknown,
44
+ TError = DefaultError,
45
+ TData = TQueryFnData,
46
+ TQueryKey extends QueryKey = QueryKey,
47
+ > extends OmitKeyof<FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryFn'> {
48
+ queryFn?: Exclude<
49
+ FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>['queryFn'],
50
+ SkipToken
51
+ >;
52
+ }
53
+
54
+ export type AnyUseQueryOptions = UseQueryOptions<any, any, any, any>;
55
+ export interface UseQueryOptions<
56
+ TQueryFnData = unknown,
57
+ TError = DefaultError,
58
+ TData = TQueryFnData,
59
+ TQueryKey extends QueryKey = QueryKey,
60
+ > extends OmitKeyof<
61
+ UseBaseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>,
62
+ 'suspense'
63
+ > {}
64
+
65
+ export type AnyUseSuspenseQueryOptions = UseSuspenseQueryOptions<any, any, any, any>;
66
+ export interface UseSuspenseQueryOptions<
67
+ TQueryFnData = unknown,
68
+ TError = DefaultError,
69
+ TData = TQueryFnData,
70
+ TQueryKey extends QueryKey = QueryKey,
71
+ > extends OmitKeyof<
72
+ UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
73
+ 'queryFn' | 'enabled' | 'throwOnError' | 'placeholderData'
74
+ > {
75
+ queryFn?: Exclude<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>['queryFn'], SkipToken>;
76
+ }
77
+
78
+ export type AnyUseInfiniteQueryOptions = UseInfiniteQueryOptions<any, any, any, any, any>;
79
+ export interface UseInfiniteQueryOptions<
80
+ TQueryFnData = unknown,
81
+ TError = DefaultError,
82
+ TData = TQueryFnData,
83
+ TQueryKey extends QueryKey = QueryKey,
84
+ TPageParam = unknown,
85
+ > extends OmitKeyof<
86
+ InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>,
87
+ 'suspense'
88
+ > {
89
+ /**
90
+ * Set this to `false` to unsubscribe this observer from updates to the query cache.
91
+ * Defaults to `true`.
92
+ */
93
+ subscribed?: boolean;
94
+ }
95
+
96
+ export type AnyUseSuspenseInfiniteQueryOptions = UseSuspenseInfiniteQueryOptions<
97
+ any,
98
+ any,
99
+ any,
100
+ any,
101
+ any
102
+ >;
103
+ export interface UseSuspenseInfiniteQueryOptions<
104
+ TQueryFnData = unknown,
105
+ TError = DefaultError,
106
+ TData = TQueryFnData,
107
+ TQueryKey extends QueryKey = QueryKey,
108
+ TPageParam = unknown,
109
+ > extends OmitKeyof<
110
+ UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>,
111
+ 'queryFn' | 'enabled' | 'throwOnError' | 'placeholderData'
112
+ > {
113
+ queryFn?: Exclude<
114
+ UseInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>['queryFn'],
115
+ SkipToken
116
+ >;
117
+ }
118
+
119
+ export type UseBaseQueryResult<TData = unknown, TError = DefaultError> = QueryObserverResult<
120
+ TData,
121
+ TError
122
+ >;
123
+
124
+ export type UseQueryResult<TData = unknown, TError = DefaultError> = UseBaseQueryResult<
125
+ TData,
126
+ TError
127
+ >;
128
+
129
+ export type UseSuspenseQueryResult<TData = unknown, TError = DefaultError> = DistributiveOmit<
130
+ DefinedQueryObserverResult<TData, TError>,
131
+ 'isPlaceholderData' | 'promise'
132
+ >;
133
+
134
+ export type DefinedUseQueryResult<
135
+ TData = unknown,
136
+ TError = DefaultError,
137
+ > = DefinedQueryObserverResult<TData, TError>;
138
+
139
+ export type UseInfiniteQueryResult<
140
+ TData = unknown,
141
+ TError = DefaultError,
142
+ > = InfiniteQueryObserverResult<TData, TError>;
143
+
144
+ export type DefinedUseInfiniteQueryResult<
145
+ TData = unknown,
146
+ TError = DefaultError,
147
+ > = DefinedInfiniteQueryObserverResult<TData, TError>;
148
+
149
+ export type UseSuspenseInfiniteQueryResult<TData = unknown, TError = DefaultError> = OmitKeyof<
150
+ DefinedInfiniteQueryObserverResult<TData, TError>,
151
+ 'isPlaceholderData' | 'promise'
152
+ >;
153
+
154
+ export type AnyUseMutationOptions = UseMutationOptions<any, any, any, any>;
155
+ export interface UseMutationOptions<
156
+ TData = unknown,
157
+ TError = DefaultError,
158
+ TVariables = void,
159
+ TOnMutateResult = unknown,
160
+ > extends OmitKeyof<
161
+ MutationObserverOptions<TData, TError, TVariables, TOnMutateResult>,
162
+ '_defaulted'
163
+ > {}
164
+
165
+ export type UseMutateFunction<
166
+ TData = unknown,
167
+ TError = DefaultError,
168
+ TVariables = void,
169
+ TOnMutateResult = unknown,
170
+ > = (...args: Parameters<MutateFunction<TData, TError, TVariables, TOnMutateResult>>) => void;
171
+
172
+ export type UseMutateAsyncFunction<
173
+ TData = unknown,
174
+ TError = DefaultError,
175
+ TVariables = void,
176
+ TOnMutateResult = unknown,
177
+ > = MutateFunction<TData, TError, TVariables, TOnMutateResult>;
178
+
179
+ export type UseBaseMutationResult<
180
+ TData = unknown,
181
+ TError = DefaultError,
182
+ TVariables = unknown,
183
+ TOnMutateResult = unknown,
184
+ > = Override<
185
+ MutationObserverResult<TData, TError, TVariables, TOnMutateResult>,
186
+ { mutate: UseMutateFunction<TData, TError, TVariables, TOnMutateResult> }
187
+ > & {
188
+ mutateAsync: UseMutateAsyncFunction<TData, TError, TVariables, TOnMutateResult>;
189
+ };
190
+
191
+ export type UseMutationResult<
192
+ TData = unknown,
193
+ TError = DefaultError,
194
+ TVariables = unknown,
195
+ TOnMutateResult = unknown,
196
+ > = UseBaseMutationResult<TData, TError, TVariables, TOnMutateResult>;
197
+
198
+ // ---------------------------------------------------------------------------
199
+ // Component prop + context-value types (octane: children are renderables, so
200
+ // upstream's React.ReactNode becomes `unknown`; render-prop children are also
201
+ // accepted where upstream accepts them).
202
+ // ---------------------------------------------------------------------------
203
+
204
+ export interface QueryClientProviderProps {
205
+ client: QueryClient;
206
+ children?: unknown;
207
+ }
208
+
209
+ export interface HydrationBoundaryProps {
210
+ state: DehydratedState | null | undefined;
211
+ options?: OmitKeyof<HydrateOptions, 'defaultOptions'> & {
212
+ defaultOptions?: OmitKeyof<Exclude<HydrateOptions['defaultOptions'], undefined>, 'mutations'>;
213
+ };
214
+ children?: unknown;
215
+ queryClient?: QueryClient;
216
+ }
217
+
218
+ export type QueryErrorResetFunction = () => void;
219
+ export type QueryErrorIsResetFunction = () => boolean;
220
+ export type QueryErrorClearResetFunction = () => void;
221
+
222
+ export interface QueryErrorResetBoundaryValue {
223
+ clearReset: QueryErrorClearResetFunction;
224
+ isReset: QueryErrorIsResetFunction;
225
+ reset: QueryErrorResetFunction;
226
+ }
227
+
228
+ export type QueryErrorResetBoundaryFunction = (value: QueryErrorResetBoundaryValue) => unknown;
229
+
230
+ export interface QueryErrorResetBoundaryProps {
231
+ children: QueryErrorResetBoundaryFunction | unknown;
232
+ }