@trpc/tanstack-react-query 11.6.1-canary.5 → 11.7.0
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/dist/index.cjs +117 -38
- package/dist/index.d.cts +119 -74
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +119 -74
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +118 -39
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -6
- package/src/internals/Context.tsx +36 -19
- package/src/internals/createOptionsProxy.ts +111 -44
- package/src/internals/infiniteQueryOptions.ts +72 -33
- package/src/internals/mutationOptions.ts +47 -31
- package/src/internals/queryOptions.ts +95 -45
- package/src/internals/subscriptionOptions.ts +30 -20
- package/src/internals/types.ts +75 -4
- package/src/internals/utils.ts +108 -56
|
@@ -12,6 +12,7 @@ import type { TRPCClientErrorLike, TRPCUntypedClient } from '@trpc/client';
|
|
|
12
12
|
import type { DistributiveOmit } from '@trpc/server/unstable-core-do-not-import';
|
|
13
13
|
import type {
|
|
14
14
|
ExtractCursorType,
|
|
15
|
+
FeatureFlags,
|
|
15
16
|
ResolverDef,
|
|
16
17
|
TRPCInfiniteData,
|
|
17
18
|
TRPCQueryBaseOptions,
|
|
@@ -32,12 +33,13 @@ interface UndefinedTRPCInfiniteQueryOptionsIn<
|
|
|
32
33
|
TQueryFnData,
|
|
33
34
|
TData,
|
|
34
35
|
TError,
|
|
36
|
+
TFeatureFlags extends FeatureFlags,
|
|
35
37
|
> extends DistributiveOmit<
|
|
36
38
|
UndefinedInitialDataInfiniteOptions<
|
|
37
39
|
TQueryFnData,
|
|
38
40
|
TError,
|
|
39
41
|
TRPCInfiniteData<TInput, TData>,
|
|
40
|
-
TRPCQueryKey
|
|
42
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>,
|
|
41
43
|
NonNullable<ExtractCursorType<TInput>> | null
|
|
42
44
|
>,
|
|
43
45
|
ReservedOptions
|
|
@@ -51,28 +53,38 @@ interface UndefinedTRPCInfiniteQueryOptionsOut<
|
|
|
51
53
|
TQueryFnData,
|
|
52
54
|
TData,
|
|
53
55
|
TError,
|
|
56
|
+
TFeatureFlags extends FeatureFlags,
|
|
54
57
|
> extends DistributiveOmit<
|
|
55
58
|
UndefinedInitialDataInfiniteOptions<
|
|
56
59
|
TQueryFnData,
|
|
57
60
|
TError,
|
|
58
61
|
TRPCInfiniteData<TInput, TData>,
|
|
59
|
-
TRPCQueryKey
|
|
62
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>,
|
|
60
63
|
NonNullable<ExtractCursorType<TInput>> | null
|
|
61
64
|
>,
|
|
62
65
|
'initialPageParam'
|
|
63
66
|
>,
|
|
64
67
|
TRPCQueryOptionsResult {
|
|
65
|
-
queryKey: DataTag<
|
|
68
|
+
queryKey: DataTag<
|
|
69
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>,
|
|
70
|
+
TRPCInfiniteData<TInput, TData>,
|
|
71
|
+
TError
|
|
72
|
+
>;
|
|
66
73
|
initialPageParam: NonNullable<ExtractCursorType<TInput>> | null;
|
|
67
74
|
}
|
|
68
75
|
|
|
69
|
-
interface DefinedTRPCInfiniteQueryOptionsIn<
|
|
70
|
-
|
|
76
|
+
interface DefinedTRPCInfiniteQueryOptionsIn<
|
|
77
|
+
TInput,
|
|
78
|
+
TQueryFnData,
|
|
79
|
+
TData,
|
|
80
|
+
TError,
|
|
81
|
+
TFeatureFlags extends FeatureFlags,
|
|
82
|
+
> extends DistributiveOmit<
|
|
71
83
|
DefinedInitialDataInfiniteOptions<
|
|
72
84
|
TQueryFnData,
|
|
73
85
|
TError,
|
|
74
86
|
TRPCInfiniteData<TInput, TData>,
|
|
75
|
-
TRPCQueryKey
|
|
87
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>,
|
|
76
88
|
NonNullable<ExtractCursorType<TInput>> | null
|
|
77
89
|
>,
|
|
78
90
|
ReservedOptions
|
|
@@ -86,18 +98,23 @@ interface DefinedTRPCInfiniteQueryOptionsOut<
|
|
|
86
98
|
TQueryFnData,
|
|
87
99
|
TData,
|
|
88
100
|
TError,
|
|
101
|
+
TFeatureFlags extends FeatureFlags,
|
|
89
102
|
> extends DistributiveOmit<
|
|
90
103
|
DefinedInitialDataInfiniteOptions<
|
|
91
104
|
TQueryFnData,
|
|
92
105
|
TError,
|
|
93
106
|
TRPCInfiniteData<TInput, TData>,
|
|
94
|
-
TRPCQueryKey
|
|
107
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>,
|
|
95
108
|
NonNullable<ExtractCursorType<TInput>> | null
|
|
96
109
|
>,
|
|
97
110
|
'initialPageParam'
|
|
98
111
|
>,
|
|
99
112
|
TRPCQueryOptionsResult {
|
|
100
|
-
queryKey: DataTag<
|
|
113
|
+
queryKey: DataTag<
|
|
114
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>,
|
|
115
|
+
TRPCInfiniteData<TInput, TData>,
|
|
116
|
+
TError
|
|
117
|
+
>;
|
|
101
118
|
initialPageParam: NonNullable<ExtractCursorType<TInput>> | null;
|
|
102
119
|
}
|
|
103
120
|
|
|
@@ -106,12 +123,13 @@ interface UnusedSkipTokenTRPCInfiniteQueryOptionsIn<
|
|
|
106
123
|
TQueryFnData,
|
|
107
124
|
TData,
|
|
108
125
|
TError,
|
|
126
|
+
TFeatureFlags extends FeatureFlags,
|
|
109
127
|
> extends DistributiveOmit<
|
|
110
128
|
UnusedSkipTokenInfiniteOptions<
|
|
111
129
|
TQueryFnData,
|
|
112
130
|
TError,
|
|
113
131
|
TRPCInfiniteData<TInput, TData>,
|
|
114
|
-
TRPCQueryKey
|
|
132
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>,
|
|
115
133
|
NonNullable<ExtractCursorType<TInput>> | null
|
|
116
134
|
>,
|
|
117
135
|
ReservedOptions
|
|
@@ -125,18 +143,23 @@ interface UnusedSkipTokenTRPCInfiniteQueryOptionsOut<
|
|
|
125
143
|
TQueryFnData,
|
|
126
144
|
TData,
|
|
127
145
|
TError,
|
|
146
|
+
TFeatureFlags extends FeatureFlags,
|
|
128
147
|
> extends DistributiveOmit<
|
|
129
148
|
UnusedSkipTokenInfiniteOptions<
|
|
130
149
|
TQueryFnData,
|
|
131
150
|
TError,
|
|
132
151
|
TRPCInfiniteData<TInput, TData>,
|
|
133
|
-
TRPCQueryKey
|
|
152
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>,
|
|
134
153
|
NonNullable<ExtractCursorType<TInput>> | null
|
|
135
154
|
>,
|
|
136
155
|
'initialPageParam'
|
|
137
156
|
>,
|
|
138
157
|
TRPCQueryOptionsResult {
|
|
139
|
-
queryKey: DataTag<
|
|
158
|
+
queryKey: DataTag<
|
|
159
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>,
|
|
160
|
+
TRPCInfiniteData<TInput, TData>,
|
|
161
|
+
TError
|
|
162
|
+
>;
|
|
140
163
|
initialPageParam: NonNullable<ExtractCursorType<TInput>> | null;
|
|
141
164
|
}
|
|
142
165
|
|
|
@@ -150,7 +173,8 @@ export interface TRPCInfiniteQueryOptions<TDef extends ResolverDef> {
|
|
|
150
173
|
TRPCClientErrorLike<{
|
|
151
174
|
transformer: TDef['transformer'];
|
|
152
175
|
errorShape: TDef['errorShape'];
|
|
153
|
-
}
|
|
176
|
+
}>,
|
|
177
|
+
TDef['featureFlags']
|
|
154
178
|
>,
|
|
155
179
|
): DefinedTRPCInfiniteQueryOptionsOut<
|
|
156
180
|
TDef['input'],
|
|
@@ -159,7 +183,8 @@ export interface TRPCInfiniteQueryOptions<TDef extends ResolverDef> {
|
|
|
159
183
|
TRPCClientErrorLike<{
|
|
160
184
|
transformer: TDef['transformer'];
|
|
161
185
|
errorShape: TDef['errorShape'];
|
|
162
|
-
}
|
|
186
|
+
}>,
|
|
187
|
+
TDef['featureFlags']
|
|
163
188
|
>;
|
|
164
189
|
<TQueryFnData extends TDef['output'], TData = TQueryFnData>(
|
|
165
190
|
input: TDef['input'],
|
|
@@ -170,7 +195,8 @@ export interface TRPCInfiniteQueryOptions<TDef extends ResolverDef> {
|
|
|
170
195
|
TRPCClientErrorLike<{
|
|
171
196
|
transformer: TDef['transformer'];
|
|
172
197
|
errorShape: TDef['errorShape'];
|
|
173
|
-
}
|
|
198
|
+
}>,
|
|
199
|
+
TDef['featureFlags']
|
|
174
200
|
>,
|
|
175
201
|
): UnusedSkipTokenTRPCInfiniteQueryOptionsOut<
|
|
176
202
|
TDef['input'],
|
|
@@ -179,7 +205,8 @@ export interface TRPCInfiniteQueryOptions<TDef extends ResolverDef> {
|
|
|
179
205
|
TRPCClientErrorLike<{
|
|
180
206
|
transformer: TDef['transformer'];
|
|
181
207
|
errorShape: TDef['errorShape'];
|
|
182
|
-
}
|
|
208
|
+
}>,
|
|
209
|
+
TDef['featureFlags']
|
|
183
210
|
>;
|
|
184
211
|
<TQueryFnData extends TDef['output'], TData = TQueryFnData>(
|
|
185
212
|
input: TDef['input'] | SkipToken,
|
|
@@ -190,7 +217,8 @@ export interface TRPCInfiniteQueryOptions<TDef extends ResolverDef> {
|
|
|
190
217
|
TRPCClientErrorLike<{
|
|
191
218
|
transformer: TDef['transformer'];
|
|
192
219
|
errorShape: TDef['errorShape'];
|
|
193
|
-
}
|
|
220
|
+
}>,
|
|
221
|
+
TDef['featureFlags']
|
|
194
222
|
>,
|
|
195
223
|
): UndefinedTRPCInfiniteQueryOptionsOut<
|
|
196
224
|
TDef['input'],
|
|
@@ -199,34 +227,45 @@ export interface TRPCInfiniteQueryOptions<TDef extends ResolverDef> {
|
|
|
199
227
|
TRPCClientErrorLike<{
|
|
200
228
|
transformer: TDef['transformer'];
|
|
201
229
|
errorShape: TDef['errorShape'];
|
|
202
|
-
}
|
|
230
|
+
}>,
|
|
231
|
+
TDef['featureFlags']
|
|
203
232
|
>;
|
|
204
233
|
}
|
|
205
234
|
|
|
206
|
-
type AnyTRPCInfiniteQueryOptionsIn =
|
|
207
|
-
| DefinedTRPCInfiniteQueryOptionsIn<any, any, any, any>
|
|
208
|
-
| UnusedSkipTokenTRPCInfiniteQueryOptionsIn<any, any, any, any>
|
|
209
|
-
| UndefinedTRPCInfiniteQueryOptionsIn<any, any, any, any>;
|
|
235
|
+
type AnyTRPCInfiniteQueryOptionsIn<TFeatureFlags extends FeatureFlags> =
|
|
236
|
+
| DefinedTRPCInfiniteQueryOptionsIn<any, any, any, any, TFeatureFlags>
|
|
237
|
+
| UnusedSkipTokenTRPCInfiniteQueryOptionsIn<any, any, any, any, TFeatureFlags>
|
|
238
|
+
| UndefinedTRPCInfiniteQueryOptionsIn<any, any, any, any, TFeatureFlags>;
|
|
210
239
|
|
|
211
|
-
type AnyTRPCInfiniteQueryOptionsOut =
|
|
212
|
-
| DefinedTRPCInfiniteQueryOptionsOut<any, any, any, any>
|
|
213
|
-
| UnusedSkipTokenTRPCInfiniteQueryOptionsOut<
|
|
214
|
-
|
|
240
|
+
type AnyTRPCInfiniteQueryOptionsOut<TFeatureFlags extends FeatureFlags> =
|
|
241
|
+
| DefinedTRPCInfiniteQueryOptionsOut<any, any, any, any, TFeatureFlags>
|
|
242
|
+
| UnusedSkipTokenTRPCInfiniteQueryOptionsOut<
|
|
243
|
+
any,
|
|
244
|
+
any,
|
|
245
|
+
any,
|
|
246
|
+
any,
|
|
247
|
+
TFeatureFlags
|
|
248
|
+
>
|
|
249
|
+
| UndefinedTRPCInfiniteQueryOptionsOut<any, any, any, any, TFeatureFlags>;
|
|
215
250
|
|
|
216
|
-
export function trpcInfiniteQueryOptions
|
|
251
|
+
export function trpcInfiniteQueryOptions<
|
|
252
|
+
TFeatureFlags extends FeatureFlags,
|
|
253
|
+
>(args: {
|
|
217
254
|
input: unknown;
|
|
218
255
|
query: typeof TRPCUntypedClient.prototype.query;
|
|
219
256
|
queryClient: QueryClient | (() => QueryClient);
|
|
220
|
-
path:
|
|
221
|
-
queryKey: TRPCQueryKey
|
|
222
|
-
opts: AnyTRPCInfiniteQueryOptionsIn
|
|
223
|
-
}): AnyTRPCInfiniteQueryOptionsOut {
|
|
257
|
+
path: string[];
|
|
258
|
+
queryKey: TRPCQueryKey<TFeatureFlags['keyPrefix']>;
|
|
259
|
+
opts: AnyTRPCInfiniteQueryOptionsIn<TFeatureFlags>;
|
|
260
|
+
}): AnyTRPCInfiniteQueryOptionsOut<TFeatureFlags> {
|
|
224
261
|
const { input, query, path, queryKey, opts } = args;
|
|
225
262
|
const inputIsSkipToken = input === skipToken;
|
|
226
263
|
|
|
227
|
-
const queryFn: QueryFunction<
|
|
228
|
-
|
|
229
|
-
|
|
264
|
+
const queryFn: QueryFunction<
|
|
265
|
+
unknown,
|
|
266
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>,
|
|
267
|
+
unknown
|
|
268
|
+
> = async (queryFnContext) => {
|
|
230
269
|
const actualOpts = {
|
|
231
270
|
...opts,
|
|
232
271
|
trpc: {
|
|
@@ -9,6 +9,9 @@ import type {
|
|
|
9
9
|
MaybePromise,
|
|
10
10
|
} from '@trpc/server/unstable-core-do-not-import';
|
|
11
11
|
import type {
|
|
12
|
+
DefaultFeatureFlags,
|
|
13
|
+
FeatureFlags,
|
|
14
|
+
KeyPrefixOptions,
|
|
12
15
|
ResolverDef,
|
|
13
16
|
TRPCMutationKey,
|
|
14
17
|
TRPCQueryBaseOptions,
|
|
@@ -23,32 +26,48 @@ import {
|
|
|
23
26
|
|
|
24
27
|
type ReservedOptions = 'mutationKey' | 'mutationFn';
|
|
25
28
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
type TRPCMutationOptionsIn<
|
|
30
|
+
TInput,
|
|
31
|
+
TError,
|
|
32
|
+
TOutput,
|
|
33
|
+
TContext,
|
|
34
|
+
TFeatureFlags extends FeatureFlags,
|
|
35
|
+
> = DistributiveOmit<
|
|
36
|
+
UseMutationOptions<TOutput, TError, TInput, TContext>,
|
|
37
|
+
ReservedOptions
|
|
38
|
+
> &
|
|
39
|
+
TRPCQueryBaseOptions &
|
|
40
|
+
KeyPrefixOptions<TFeatureFlags>;
|
|
32
41
|
|
|
33
|
-
interface TRPCMutationOptionsOut<
|
|
34
|
-
|
|
42
|
+
interface TRPCMutationOptionsOut<
|
|
43
|
+
TInput,
|
|
44
|
+
TError,
|
|
45
|
+
TOutput,
|
|
46
|
+
TContext,
|
|
47
|
+
TFeatureFlags extends FeatureFlags,
|
|
48
|
+
> extends UseMutationOptions<TOutput, TError, TInput, TContext>,
|
|
35
49
|
TRPCQueryOptionsResult {
|
|
36
|
-
mutationKey: TRPCMutationKey
|
|
50
|
+
mutationKey: TRPCMutationKey<TFeatureFlags['keyPrefix']>;
|
|
37
51
|
}
|
|
38
52
|
|
|
39
|
-
export interface TRPCMutationOptions<
|
|
53
|
+
export interface TRPCMutationOptions<
|
|
54
|
+
TDef extends ResolverDef,
|
|
55
|
+
TFeatureFlags extends FeatureFlags = DefaultFeatureFlags,
|
|
56
|
+
> {
|
|
40
57
|
<TContext = unknown>(
|
|
41
58
|
opts?: TRPCMutationOptionsIn<
|
|
42
59
|
TDef['input'],
|
|
43
60
|
TRPCClientErrorLike<TDef>,
|
|
44
61
|
TDef['output'],
|
|
45
|
-
TContext
|
|
62
|
+
TContext,
|
|
63
|
+
TFeatureFlags
|
|
46
64
|
>,
|
|
47
65
|
): TRPCMutationOptionsOut<
|
|
48
66
|
TDef['input'],
|
|
49
67
|
TRPCClientErrorLike<TDef>,
|
|
50
68
|
TDef['output'],
|
|
51
|
-
TContext
|
|
69
|
+
TContext,
|
|
70
|
+
TFeatureFlags
|
|
52
71
|
>;
|
|
53
72
|
}
|
|
54
73
|
|
|
@@ -69,34 +88,29 @@ export interface MutationOptionsOverride {
|
|
|
69
88
|
}) => MaybePromise<void>;
|
|
70
89
|
}
|
|
71
90
|
|
|
72
|
-
type AnyTRPCMutationOptionsIn =
|
|
73
|
-
unknown,
|
|
74
|
-
unknown,
|
|
75
|
-
unknown,
|
|
76
|
-
unknown
|
|
77
|
-
>;
|
|
91
|
+
type AnyTRPCMutationOptionsIn<TFeatureFlags extends FeatureFlags> =
|
|
92
|
+
TRPCMutationOptionsIn<unknown, unknown, unknown, unknown, TFeatureFlags>;
|
|
78
93
|
|
|
79
|
-
type AnyTRPCMutationOptionsOut =
|
|
80
|
-
unknown,
|
|
81
|
-
unknown,
|
|
82
|
-
unknown,
|
|
83
|
-
unknown
|
|
84
|
-
>;
|
|
94
|
+
type AnyTRPCMutationOptionsOut<TFeatureFlags extends FeatureFlags> =
|
|
95
|
+
TRPCMutationOptionsOut<unknown, unknown, unknown, unknown, TFeatureFlags>;
|
|
85
96
|
|
|
86
97
|
/**
|
|
87
98
|
* @internal
|
|
88
99
|
*/
|
|
89
|
-
export function trpcMutationOptions(args: {
|
|
100
|
+
export function trpcMutationOptions<TFeatureFlags extends FeatureFlags>(args: {
|
|
90
101
|
mutate: typeof TRPCUntypedClient.prototype.mutation;
|
|
91
102
|
queryClient: QueryClient | (() => QueryClient);
|
|
92
|
-
path:
|
|
93
|
-
opts: AnyTRPCMutationOptionsIn
|
|
103
|
+
path: string[];
|
|
104
|
+
opts: AnyTRPCMutationOptionsIn<TFeatureFlags>;
|
|
94
105
|
overrides: MutationOptionsOverride | undefined;
|
|
95
|
-
}): AnyTRPCMutationOptionsOut {
|
|
106
|
+
}): AnyTRPCMutationOptionsOut<TFeatureFlags> {
|
|
96
107
|
const { mutate, path, opts, overrides } = args;
|
|
97
108
|
const queryClient = unwrapLazyArg(args.queryClient);
|
|
98
109
|
|
|
99
|
-
const mutationKey = getMutationKeyInternal(
|
|
110
|
+
const mutationKey = getMutationKeyInternal({
|
|
111
|
+
path,
|
|
112
|
+
prefix: opts.keyPrefix,
|
|
113
|
+
}) as TRPCMutationKey<TFeatureFlags['keyPrefix']>;
|
|
100
114
|
|
|
101
115
|
const defaultOpts = queryClient.defaultMutationOptions(
|
|
102
116
|
queryClient.getMutationDefaults(mutationKey),
|
|
@@ -106,14 +120,16 @@ export function trpcMutationOptions(args: {
|
|
|
106
120
|
overrides?.onSuccess ?? ((options) => options.originalFn());
|
|
107
121
|
|
|
108
122
|
const mutationFn: MutationFunction = async (input) => {
|
|
109
|
-
const result = await mutate(
|
|
123
|
+
const result = await mutate(
|
|
124
|
+
...getClientArgs([...mutationKey, { input }] as any, opts),
|
|
125
|
+
);
|
|
110
126
|
|
|
111
127
|
return result;
|
|
112
128
|
};
|
|
113
129
|
|
|
114
130
|
return {
|
|
115
131
|
...opts,
|
|
116
|
-
mutationKey
|
|
132
|
+
mutationKey,
|
|
117
133
|
mutationFn,
|
|
118
134
|
onSuccess(...args) {
|
|
119
135
|
const originalFn = () =>
|
|
@@ -15,6 +15,8 @@ import type {
|
|
|
15
15
|
} from '@trpc/server/unstable-core-do-not-import';
|
|
16
16
|
import { isAsyncIterable } from '@trpc/server/unstable-core-do-not-import';
|
|
17
17
|
import type {
|
|
18
|
+
DefaultFeatureFlags,
|
|
19
|
+
FeatureFlags,
|
|
18
20
|
ResolverDef,
|
|
19
21
|
TRPCQueryBaseOptions,
|
|
20
22
|
TRPCQueryKey,
|
|
@@ -29,76 +31,115 @@ import {
|
|
|
29
31
|
|
|
30
32
|
type ReservedOptions = 'queryKey' | 'queryFn' | 'queryHashFn' | 'queryHash';
|
|
31
33
|
|
|
32
|
-
interface UndefinedTRPCQueryOptionsIn<
|
|
33
|
-
|
|
34
|
+
interface UndefinedTRPCQueryOptionsIn<
|
|
35
|
+
TQueryFnData,
|
|
36
|
+
TData,
|
|
37
|
+
TError,
|
|
38
|
+
TFeatureFlags extends FeatureFlags,
|
|
39
|
+
> extends DistributiveOmit<
|
|
34
40
|
UndefinedInitialDataOptions<
|
|
35
41
|
coerceAsyncIterableToArray<TQueryFnData>,
|
|
36
42
|
TError,
|
|
37
43
|
coerceAsyncIterableToArray<TData>,
|
|
38
|
-
TRPCQueryKey
|
|
44
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>
|
|
39
45
|
>,
|
|
40
46
|
ReservedOptions
|
|
41
47
|
>,
|
|
42
48
|
TRPCQueryBaseOptions {}
|
|
43
49
|
|
|
44
|
-
interface UndefinedTRPCQueryOptionsOut<
|
|
45
|
-
|
|
50
|
+
interface UndefinedTRPCQueryOptionsOut<
|
|
51
|
+
TQueryFnData,
|
|
52
|
+
TOutput,
|
|
53
|
+
TError,
|
|
54
|
+
TFeatureFlags extends FeatureFlags,
|
|
55
|
+
> extends UndefinedInitialDataOptions<
|
|
46
56
|
coerceAsyncIterableToArray<TQueryFnData>,
|
|
47
57
|
TError,
|
|
48
58
|
coerceAsyncIterableToArray<TOutput>,
|
|
49
|
-
TRPCQueryKey
|
|
59
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>
|
|
50
60
|
>,
|
|
51
61
|
TRPCQueryOptionsResult {
|
|
52
|
-
queryKey: DataTag<
|
|
62
|
+
queryKey: DataTag<
|
|
63
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>,
|
|
64
|
+
coerceAsyncIterableToArray<TOutput>,
|
|
65
|
+
TError
|
|
66
|
+
>;
|
|
53
67
|
}
|
|
54
68
|
|
|
55
|
-
interface DefinedTRPCQueryOptionsIn<
|
|
56
|
-
|
|
69
|
+
interface DefinedTRPCQueryOptionsIn<
|
|
70
|
+
TQueryFnData,
|
|
71
|
+
TData,
|
|
72
|
+
TError,
|
|
73
|
+
TFeatureFlags extends FeatureFlags,
|
|
74
|
+
> extends DistributiveOmit<
|
|
57
75
|
DefinedInitialDataOptions<
|
|
58
76
|
coerceAsyncIterableToArray<NoInfer<TQueryFnData>>,
|
|
59
77
|
TError,
|
|
60
78
|
coerceAsyncIterableToArray<TData>,
|
|
61
|
-
TRPCQueryKey
|
|
79
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>
|
|
62
80
|
>,
|
|
63
81
|
ReservedOptions
|
|
64
82
|
>,
|
|
65
83
|
TRPCQueryBaseOptions {}
|
|
66
84
|
|
|
67
|
-
interface DefinedTRPCQueryOptionsOut<
|
|
68
|
-
|
|
85
|
+
interface DefinedTRPCQueryOptionsOut<
|
|
86
|
+
TQueryFnData,
|
|
87
|
+
TData,
|
|
88
|
+
TError,
|
|
89
|
+
TFeatureFlags extends FeatureFlags,
|
|
90
|
+
> extends DefinedInitialDataOptions<
|
|
69
91
|
coerceAsyncIterableToArray<TQueryFnData>,
|
|
70
92
|
TError,
|
|
71
93
|
coerceAsyncIterableToArray<TData>,
|
|
72
|
-
TRPCQueryKey
|
|
94
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>
|
|
73
95
|
>,
|
|
74
96
|
TRPCQueryOptionsResult {
|
|
75
|
-
queryKey: DataTag<
|
|
97
|
+
queryKey: DataTag<
|
|
98
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>,
|
|
99
|
+
coerceAsyncIterableToArray<TData>,
|
|
100
|
+
TError
|
|
101
|
+
>;
|
|
76
102
|
}
|
|
77
103
|
|
|
78
|
-
interface UnusedSkipTokenTRPCQueryOptionsIn<
|
|
79
|
-
|
|
104
|
+
interface UnusedSkipTokenTRPCQueryOptionsIn<
|
|
105
|
+
TQueryFnData,
|
|
106
|
+
TData,
|
|
107
|
+
TError,
|
|
108
|
+
TFeatureFlags extends FeatureFlags,
|
|
109
|
+
> extends DistributiveOmit<
|
|
80
110
|
UnusedSkipTokenOptions<
|
|
81
111
|
coerceAsyncIterableToArray<TQueryFnData>,
|
|
82
112
|
TError,
|
|
83
113
|
coerceAsyncIterableToArray<TData>,
|
|
84
|
-
TRPCQueryKey
|
|
114
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>
|
|
85
115
|
>,
|
|
86
116
|
ReservedOptions
|
|
87
117
|
>,
|
|
88
118
|
TRPCQueryBaseOptions {}
|
|
89
119
|
|
|
90
|
-
interface UnusedSkipTokenTRPCQueryOptionsOut<
|
|
91
|
-
|
|
120
|
+
interface UnusedSkipTokenTRPCQueryOptionsOut<
|
|
121
|
+
TQueryFnData,
|
|
122
|
+
TOutput,
|
|
123
|
+
TError,
|
|
124
|
+
TFeatureFlags extends FeatureFlags,
|
|
125
|
+
> extends UnusedSkipTokenOptions<
|
|
92
126
|
coerceAsyncIterableToArray<TQueryFnData>,
|
|
93
127
|
TError,
|
|
94
128
|
coerceAsyncIterableToArray<TOutput>,
|
|
95
|
-
TRPCQueryKey
|
|
129
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>
|
|
96
130
|
>,
|
|
97
131
|
TRPCQueryOptionsResult {
|
|
98
|
-
queryKey: DataTag<
|
|
132
|
+
queryKey: DataTag<
|
|
133
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>,
|
|
134
|
+
coerceAsyncIterableToArray<TOutput>,
|
|
135
|
+
TError
|
|
136
|
+
>;
|
|
99
137
|
}
|
|
100
138
|
|
|
101
|
-
export interface TRPCQueryOptions<
|
|
139
|
+
export interface TRPCQueryOptions<
|
|
140
|
+
TDef extends ResolverDef,
|
|
141
|
+
TFeatureFlags extends FeatureFlags = DefaultFeatureFlags,
|
|
142
|
+
> {
|
|
102
143
|
<TQueryFnData extends TDef['output'], TData = TQueryFnData>(
|
|
103
144
|
input: TDef['input'] | SkipToken,
|
|
104
145
|
opts: DefinedTRPCQueryOptionsIn<
|
|
@@ -107,7 +148,8 @@ export interface TRPCQueryOptions<TDef extends ResolverDef> {
|
|
|
107
148
|
TRPCClientErrorLike<{
|
|
108
149
|
transformer: TDef['transformer'];
|
|
109
150
|
errorShape: TDef['errorShape'];
|
|
110
|
-
}
|
|
151
|
+
}>,
|
|
152
|
+
TFeatureFlags
|
|
111
153
|
>,
|
|
112
154
|
): DefinedTRPCQueryOptionsOut<
|
|
113
155
|
TQueryFnData,
|
|
@@ -115,7 +157,8 @@ export interface TRPCQueryOptions<TDef extends ResolverDef> {
|
|
|
115
157
|
TRPCClientErrorLike<{
|
|
116
158
|
transformer: TDef['transformer'];
|
|
117
159
|
errorShape: TDef['errorShape'];
|
|
118
|
-
}
|
|
160
|
+
}>,
|
|
161
|
+
TFeatureFlags
|
|
119
162
|
>;
|
|
120
163
|
<TQueryFnData extends TDef['output'], TData = TQueryFnData>(
|
|
121
164
|
input: TDef['input'],
|
|
@@ -125,7 +168,8 @@ export interface TRPCQueryOptions<TDef extends ResolverDef> {
|
|
|
125
168
|
TRPCClientErrorLike<{
|
|
126
169
|
transformer: TDef['transformer'];
|
|
127
170
|
errorShape: TDef['errorShape'];
|
|
128
|
-
}
|
|
171
|
+
}>,
|
|
172
|
+
TFeatureFlags
|
|
129
173
|
>,
|
|
130
174
|
): UnusedSkipTokenTRPCQueryOptionsOut<
|
|
131
175
|
TQueryFnData,
|
|
@@ -133,7 +177,8 @@ export interface TRPCQueryOptions<TDef extends ResolverDef> {
|
|
|
133
177
|
TRPCClientErrorLike<{
|
|
134
178
|
transformer: TDef['transformer'];
|
|
135
179
|
errorShape: TDef['errorShape'];
|
|
136
|
-
}
|
|
180
|
+
}>,
|
|
181
|
+
TFeatureFlags
|
|
137
182
|
>;
|
|
138
183
|
<TQueryFnData extends TDef['output'], TData = TQueryFnData>(
|
|
139
184
|
input: TDef['input'] | SkipToken,
|
|
@@ -143,7 +188,8 @@ export interface TRPCQueryOptions<TDef extends ResolverDef> {
|
|
|
143
188
|
TRPCClientErrorLike<{
|
|
144
189
|
transformer: TDef['transformer'];
|
|
145
190
|
errorShape: TDef['errorShape'];
|
|
146
|
-
}
|
|
191
|
+
}>,
|
|
192
|
+
TFeatureFlags
|
|
147
193
|
>,
|
|
148
194
|
): UndefinedTRPCQueryOptionsOut<
|
|
149
195
|
TQueryFnData,
|
|
@@ -151,39 +197,43 @@ export interface TRPCQueryOptions<TDef extends ResolverDef> {
|
|
|
151
197
|
TRPCClientErrorLike<{
|
|
152
198
|
transformer: TDef['transformer'];
|
|
153
199
|
errorShape: TDef['errorShape'];
|
|
154
|
-
}
|
|
200
|
+
}>,
|
|
201
|
+
TFeatureFlags
|
|
155
202
|
>;
|
|
156
203
|
}
|
|
157
204
|
|
|
158
|
-
type AnyTRPCQueryOptionsIn =
|
|
159
|
-
| DefinedTRPCQueryOptionsIn<unknown, unknown, unknown>
|
|
160
|
-
| UnusedSkipTokenTRPCQueryOptionsIn<unknown, unknown, unknown>
|
|
161
|
-
| UndefinedTRPCQueryOptionsIn<unknown, unknown, unknown>;
|
|
205
|
+
type AnyTRPCQueryOptionsIn<TFeatureFlags extends FeatureFlags> =
|
|
206
|
+
| DefinedTRPCQueryOptionsIn<unknown, unknown, unknown, TFeatureFlags>
|
|
207
|
+
| UnusedSkipTokenTRPCQueryOptionsIn<unknown, unknown, unknown, TFeatureFlags>
|
|
208
|
+
| UndefinedTRPCQueryOptionsIn<unknown, unknown, unknown, TFeatureFlags>;
|
|
162
209
|
|
|
163
|
-
type AnyTRPCQueryOptionsOut
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
|
210
|
+
type AnyTRPCQueryOptionsOut<
|
|
211
|
+
TFeatureFlags extends FeatureFlags = DefaultFeatureFlags,
|
|
212
|
+
> =
|
|
213
|
+
| DefinedTRPCQueryOptionsOut<unknown, unknown, unknown, TFeatureFlags>
|
|
214
|
+
| UnusedSkipTokenTRPCQueryOptionsOut<unknown, unknown, unknown, TFeatureFlags>
|
|
215
|
+
| UndefinedTRPCQueryOptionsOut<unknown, unknown, unknown, TFeatureFlags>;
|
|
167
216
|
|
|
168
217
|
/**
|
|
169
218
|
* @internal
|
|
170
219
|
*/
|
|
171
|
-
export function trpcQueryOptions(args: {
|
|
220
|
+
export function trpcQueryOptions<TFeatureFlags extends FeatureFlags>(args: {
|
|
172
221
|
input: unknown;
|
|
173
222
|
query: typeof TRPCUntypedClient.prototype.query;
|
|
174
223
|
queryClient: QueryClient | (() => QueryClient);
|
|
175
|
-
path:
|
|
176
|
-
queryKey: TRPCQueryKey
|
|
177
|
-
opts: AnyTRPCQueryOptionsIn
|
|
178
|
-
}): AnyTRPCQueryOptionsOut {
|
|
224
|
+
path: string[];
|
|
225
|
+
queryKey: TRPCQueryKey<TFeatureFlags['keyPrefix']>;
|
|
226
|
+
opts: AnyTRPCQueryOptionsIn<TFeatureFlags>;
|
|
227
|
+
}): AnyTRPCQueryOptionsOut<TFeatureFlags> {
|
|
179
228
|
const { input, query, path, queryKey, opts } = args;
|
|
180
229
|
const queryClient = unwrapLazyArg(args.queryClient);
|
|
181
230
|
|
|
182
231
|
const inputIsSkipToken = input === skipToken;
|
|
183
232
|
|
|
184
|
-
const queryFn: QueryFunction<
|
|
185
|
-
|
|
186
|
-
|
|
233
|
+
const queryFn: QueryFunction<
|
|
234
|
+
unknown,
|
|
235
|
+
TRPCQueryKey<TFeatureFlags['keyPrefix']>
|
|
236
|
+
> = async (queryFnContext) => {
|
|
187
237
|
const actualOpts = {
|
|
188
238
|
...opts,
|
|
189
239
|
trpc: {
|
|
@@ -207,7 +257,7 @@ export function trpcQueryOptions(args: {
|
|
|
207
257
|
return Object.assign(
|
|
208
258
|
queryOptions({
|
|
209
259
|
...opts,
|
|
210
|
-
queryKey,
|
|
260
|
+
queryKey: queryKey,
|
|
211
261
|
queryFn: inputIsSkipToken ? skipToken : queryFn,
|
|
212
262
|
}),
|
|
213
263
|
{ trpc: createTRPCOptionsResult({ path }) },
|