@zenstackhq/tanstack-query 3.0.0-beta.17 → 3.0.0-beta.19

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/src/react.ts CHANGED
@@ -36,7 +36,9 @@ import type {
36
36
  GroupByArgs,
37
37
  GroupByResult,
38
38
  ModelResult,
39
+ SelectIncludeOmit,
39
40
  SelectSubset,
41
+ Subset,
40
42
  UpdateArgs,
41
43
  UpdateManyAndReturnArgs,
42
44
  UpdateManyArgs,
@@ -55,6 +57,7 @@ import {
55
57
  type ExtraMutationOptions,
56
58
  type ExtraQueryOptions,
57
59
  } from './utils/common';
60
+ import type { TrimDelegateModelOperations, WithOptimistic } from './utils/types';
58
61
 
59
62
  export type { FetchFn } from './utils/common';
60
63
 
@@ -79,7 +82,7 @@ export const QuerySettingsProvider = QuerySettingsContext.Provider;
79
82
  /**
80
83
  * React context provider for configuring query settings.
81
84
  *
82
- * @deprecated Use `QuerySettingsProvider` instead.
85
+ * @deprecated Use {@link QuerySettingsProvider} instead.
83
86
  */
84
87
  export const Provider = QuerySettingsProvider;
85
88
 
@@ -90,12 +93,14 @@ function useHooksContext() {
90
93
 
91
94
  export type ModelQueryOptions<T> = Omit<UseQueryOptions<T, DefaultError>, 'queryKey'> & ExtraQueryOptions;
92
95
 
93
- export type ModelQueryResult<T> = UseQueryResult<T, DefaultError> & { queryKey: QueryKey };
96
+ export type ModelQueryResult<T> = UseQueryResult<WithOptimistic<T>, DefaultError> & { queryKey: QueryKey };
94
97
 
95
98
  export type ModelSuspenseQueryOptions<T> = Omit<UseSuspenseQueryOptions<T, DefaultError>, 'queryKey'> &
96
99
  ExtraQueryOptions;
97
100
 
98
- export type ModelSuspenseQueryResult<T> = UseSuspenseQueryResult<T, DefaultError> & { queryKey: QueryKey };
101
+ export type ModelSuspenseQueryResult<T> = UseSuspenseQueryResult<WithOptimistic<T>, DefaultError> & {
102
+ queryKey: QueryKey;
103
+ };
99
104
 
100
105
  export type ModelInfiniteQueryOptions<T> = Omit<
101
106
  UseInfiniteQueryOptions<T, DefaultError, InfiniteData<T>>,
@@ -118,120 +123,144 @@ export type ModelMutationOptions<T, TArgs> = Omit<UseMutationOptions<T, DefaultE
118
123
 
119
124
  export type ModelMutationResult<T, TArgs> = UseMutationResult<T, DefaultError, TArgs>;
120
125
 
121
- export type SchemaHooks<Schema extends SchemaDef> = {
122
- [Model in GetModels<Schema> as `${Uncapitalize<Model>}`]: ModelQueryHooks<Schema, Model>;
123
- };
124
-
125
- export type ModelQueryHooks<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
126
- useFindUnique<T extends FindUniqueArgs<Schema, Model>>(
127
- args: SelectSubset<T, FindUniqueArgs<Schema, Model>>,
128
- options?: ModelQueryOptions<ModelResult<Schema, Model, T> | null>,
129
- ): ModelQueryResult<ModelResult<Schema, Model, T> | null>;
130
-
131
- useSuspenseFindUnique<T extends FindUniqueArgs<Schema, Model>>(
132
- args: SelectSubset<T, FindUniqueArgs<Schema, Model>>,
133
- options?: ModelSuspenseQueryOptions<ModelResult<Schema, Model, T> | null>,
134
- ): ModelSuspenseQueryResult<ModelResult<Schema, Model, T> | null>;
135
-
136
- useFindFirst<T extends FindArgs<Schema, Model, false>>(
137
- args?: SelectSubset<T, FindArgs<Schema, Model, false>>,
138
- options?: ModelQueryOptions<ModelResult<Schema, Model, T> | null>,
139
- ): ModelQueryResult<ModelResult<Schema, Model, T> | null>;
140
-
141
- useSuspenseFindFirst<T extends FindArgs<Schema, Model, false>>(
142
- args?: SelectSubset<T, FindArgs<Schema, Model, false>>,
143
- options?: ModelSuspenseQueryOptions<ModelResult<Schema, Model, T> | null>,
144
- ): ModelSuspenseQueryResult<ModelResult<Schema, Model, T> | null>;
145
-
146
- useFindMany<T extends FindArgs<Schema, Model, true>>(
147
- args?: SelectSubset<T, FindArgs<Schema, Model, true>>,
148
- options?: ModelQueryOptions<ModelResult<Schema, Model, T>[]>,
149
- ): ModelQueryResult<ModelResult<Schema, Model, T>[]>;
150
-
151
- useSuspenseFindMany<T extends FindArgs<Schema, Model, true>>(
152
- args?: SelectSubset<T, FindArgs<Schema, Model, true>>,
153
- options?: ModelSuspenseQueryOptions<ModelResult<Schema, Model, T>[]>,
154
- ): ModelSuspenseQueryResult<ModelResult<Schema, Model, T>[]>;
155
-
156
- useInfiniteFindMany<T extends FindArgs<Schema, Model, true>>(
157
- args?: SelectSubset<T, FindArgs<Schema, Model, true>>,
158
- options?: ModelInfiniteQueryOptions<ModelResult<Schema, Model, T>[]>,
159
- ): ModelInfiniteQueryResult<InfiniteData<ModelResult<Schema, Model, T>[]>>;
160
-
161
- useSuspenseInfiniteFindMany<T extends FindArgs<Schema, Model, true>>(
162
- args?: SelectSubset<T, FindArgs<Schema, Model, true>>,
163
- options?: ModelSuspenseInfiniteQueryOptions<ModelResult<Schema, Model, T>[]>,
164
- ): ModelSuspenseInfiniteQueryResult<InfiniteData<ModelResult<Schema, Model, T>[]>>;
165
-
166
- useCreate<T extends CreateArgs<Schema, Model>>(
167
- options?: ModelMutationOptions<ModelResult<Schema, Model, T>, T>,
168
- ): ModelMutationResult<ModelResult<Schema, Model, T>, T>;
169
-
170
- useCreateMany<T extends CreateManyArgs<Schema, Model>>(
171
- options?: ModelMutationOptions<BatchResult, T>,
172
- ): ModelMutationResult<BatchResult, T>;
173
-
174
- useCreateManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model>>(
175
- options?: ModelMutationOptions<ModelResult<Schema, Model, T>[], T>,
176
- ): ModelMutationResult<ModelResult<Schema, Model, T>[], T>;
177
-
178
- useUpdate<T extends UpdateArgs<Schema, Model>>(
179
- options?: ModelMutationOptions<ModelResult<Schema, Model, T>, T>,
180
- ): ModelMutationResult<ModelResult<Schema, Model, T>, T>;
181
-
182
- useUpdateMany<T extends UpdateManyArgs<Schema, Model>>(
183
- options?: ModelMutationOptions<BatchResult, T>,
184
- ): ModelMutationResult<BatchResult, T>;
185
-
186
- useUpdateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model>>(
187
- options?: ModelMutationOptions<ModelResult<Schema, Model, T>[], T>,
188
- ): ModelMutationResult<ModelResult<Schema, Model, T>[], T>;
189
-
190
- useUpsert<T extends UpsertArgs<Schema, Model>>(
191
- options?: ModelMutationOptions<ModelResult<Schema, Model, T>, T>,
192
- ): ModelMutationResult<ModelResult<Schema, Model, T>, T>;
193
-
194
- useDelete<T extends DeleteArgs<Schema, Model>>(
126
+ export type ModelMutationModelResult<
127
+ Schema extends SchemaDef,
128
+ Model extends GetModels<Schema>,
129
+ TArgs extends SelectIncludeOmit<Schema, Model, boolean>,
130
+ Array extends boolean = false,
131
+ > = Omit<ModelMutationResult<ModelResult<Schema, Model, TArgs>, TArgs>, 'mutateAsync'> & {
132
+ mutateAsync<T extends TArgs>(
133
+ args: T,
195
134
  options?: ModelMutationOptions<ModelResult<Schema, Model, T>, T>,
196
- ): ModelMutationResult<ModelResult<Schema, Model, T>, T>;
197
-
198
- useDeleteMany<T extends DeleteManyArgs<Schema, Model>>(
199
- options?: ModelMutationOptions<BatchResult, T>,
200
- ): ModelMutationResult<BatchResult, T>;
201
-
202
- useCount<T extends CountArgs<Schema, Model>>(
203
- options?: ModelQueryOptions<CountResult<Schema, Model, T>>,
204
- ): ModelQueryResult<CountResult<Schema, Model, T>>;
205
-
206
- useSuspenseCount<T extends CountArgs<Schema, Model>>(
207
- options?: ModelSuspenseQueryOptions<CountResult<Schema, Model, T>>,
208
- ): ModelSuspenseQueryResult<CountResult<Schema, Model, T>>;
209
-
210
- useAggregate<T extends AggregateArgs<Schema, Model>>(
211
- options?: ModelQueryOptions<AggregateResult<Schema, Model, T>>,
212
- ): ModelQueryResult<AggregateResult<Schema, Model, T>>;
213
-
214
- useSuspenseAggregate<T extends AggregateArgs<Schema, Model>>(
215
- options?: ModelSuspenseQueryOptions<AggregateResult<Schema, Model, T>>,
216
- ): ModelSuspenseQueryResult<AggregateResult<Schema, Model, T>>;
217
-
218
- useGroupBy<T extends GroupByArgs<Schema, Model>>(
219
- options?: ModelQueryOptions<GroupByResult<Schema, Model, T>>,
220
- ): ModelQueryResult<GroupByResult<Schema, Model, T>>;
135
+ ): Promise<Array extends true ? ModelResult<Schema, Model, T>[] : ModelResult<Schema, Model, T>>;
136
+ };
221
137
 
222
- useSuspenseGroupBy<T extends GroupByArgs<Schema, Model>>(
223
- options?: ModelSuspenseQueryOptions<GroupByResult<Schema, Model, T>>,
224
- ): ModelSuspenseQueryResult<GroupByResult<Schema, Model, T>>;
138
+ export type ClientHooks<Schema extends SchemaDef> = {
139
+ [Model in GetModels<Schema> as `${Uncapitalize<Model>}`]: ModelQueryHooks<Schema, Model>;
225
140
  };
226
141
 
142
+ // Note that we can potentially use TypeScript's mapped type to directly map from ORM contract, but that seems
143
+ // to significantly slow down tsc performance ...
144
+ export type ModelQueryHooks<Schema extends SchemaDef, Model extends GetModels<Schema>> = TrimDelegateModelOperations<
145
+ Schema,
146
+ Model,
147
+ {
148
+ useFindUnique<T extends FindUniqueArgs<Schema, Model>>(
149
+ args: SelectSubset<T, FindUniqueArgs<Schema, Model>>,
150
+ options?: ModelQueryOptions<ModelResult<Schema, Model, T> | null>,
151
+ ): ModelQueryResult<ModelResult<Schema, Model, T> | null>;
152
+
153
+ useSuspenseFindUnique<T extends FindUniqueArgs<Schema, Model>>(
154
+ args: SelectSubset<T, FindUniqueArgs<Schema, Model>>,
155
+ options?: ModelSuspenseQueryOptions<ModelResult<Schema, Model, T> | null>,
156
+ ): ModelSuspenseQueryResult<ModelResult<Schema, Model, T> | null>;
157
+
158
+ useFindFirst<T extends FindArgs<Schema, Model, false>>(
159
+ args?: SelectSubset<T, FindArgs<Schema, Model, false>>,
160
+ options?: ModelQueryOptions<ModelResult<Schema, Model, T> | null>,
161
+ ): ModelQueryResult<ModelResult<Schema, Model, T> | null>;
162
+
163
+ useSuspenseFindFirst<T extends FindArgs<Schema, Model, false>>(
164
+ args?: SelectSubset<T, FindArgs<Schema, Model, false>>,
165
+ options?: ModelSuspenseQueryOptions<ModelResult<Schema, Model, T> | null>,
166
+ ): ModelSuspenseQueryResult<ModelResult<Schema, Model, T> | null>;
167
+
168
+ useFindMany<T extends FindArgs<Schema, Model, true>>(
169
+ args?: SelectSubset<T, FindArgs<Schema, Model, true>>,
170
+ options?: ModelQueryOptions<ModelResult<Schema, Model, T>[]>,
171
+ ): ModelQueryResult<ModelResult<Schema, Model, T>[]>;
172
+
173
+ useSuspenseFindMany<T extends FindArgs<Schema, Model, true>>(
174
+ args?: SelectSubset<T, FindArgs<Schema, Model, true>>,
175
+ options?: ModelSuspenseQueryOptions<ModelResult<Schema, Model, T>[]>,
176
+ ): ModelSuspenseQueryResult<ModelResult<Schema, Model, T>[]>;
177
+
178
+ useInfiniteFindMany<T extends FindArgs<Schema, Model, true>>(
179
+ args?: SelectSubset<T, FindArgs<Schema, Model, true>>,
180
+ options?: ModelInfiniteQueryOptions<ModelResult<Schema, Model, T>[]>,
181
+ ): ModelInfiniteQueryResult<InfiniteData<ModelResult<Schema, Model, T>[]>>;
182
+
183
+ useSuspenseInfiniteFindMany<T extends FindArgs<Schema, Model, true>>(
184
+ args?: SelectSubset<T, FindArgs<Schema, Model, true>>,
185
+ options?: ModelSuspenseInfiniteQueryOptions<ModelResult<Schema, Model, T>[]>,
186
+ ): ModelSuspenseInfiniteQueryResult<InfiniteData<ModelResult<Schema, Model, T>[]>>;
187
+
188
+ useCreate<T extends CreateArgs<Schema, Model>>(
189
+ options?: ModelMutationOptions<ModelResult<Schema, Model, T>, T>,
190
+ ): ModelMutationModelResult<Schema, Model, T>;
191
+
192
+ useCreateMany<T extends CreateManyArgs<Schema, Model>>(
193
+ options?: ModelMutationOptions<BatchResult, T>,
194
+ ): ModelMutationResult<BatchResult, T>;
195
+
196
+ useCreateManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model>>(
197
+ options?: ModelMutationOptions<ModelResult<Schema, Model, T>[], T>,
198
+ ): ModelMutationModelResult<Schema, Model, T, true>;
199
+
200
+ useUpdate<T extends UpdateArgs<Schema, Model>>(
201
+ options?: ModelMutationOptions<ModelResult<Schema, Model, T>, T>,
202
+ ): ModelMutationModelResult<Schema, Model, T>;
203
+
204
+ useUpdateMany<T extends UpdateManyArgs<Schema, Model>>(
205
+ options?: ModelMutationOptions<BatchResult, T>,
206
+ ): ModelMutationResult<BatchResult, T>;
207
+
208
+ useUpdateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model>>(
209
+ options?: ModelMutationOptions<ModelResult<Schema, Model, T>[], T>,
210
+ ): ModelMutationModelResult<Schema, Model, T, true>;
211
+
212
+ useUpsert<T extends UpsertArgs<Schema, Model>>(
213
+ options?: ModelMutationOptions<ModelResult<Schema, Model, T>, T>,
214
+ ): ModelMutationModelResult<Schema, Model, T>;
215
+
216
+ useDelete<T extends DeleteArgs<Schema, Model>>(
217
+ options?: ModelMutationOptions<ModelResult<Schema, Model, T>, T>,
218
+ ): ModelMutationModelResult<Schema, Model, T>;
219
+
220
+ useDeleteMany<T extends DeleteManyArgs<Schema, Model>>(
221
+ options?: ModelMutationOptions<BatchResult, T>,
222
+ ): ModelMutationResult<BatchResult, T>;
223
+
224
+ useCount<T extends CountArgs<Schema, Model>>(
225
+ args?: Subset<T, CountArgs<Schema, Model>>,
226
+ options?: ModelQueryOptions<CountResult<Schema, Model, T>>,
227
+ ): ModelQueryResult<CountResult<Schema, Model, T>>;
228
+
229
+ useSuspenseCount<T extends CountArgs<Schema, Model>>(
230
+ args?: Subset<T, CountArgs<Schema, Model>>,
231
+ options?: ModelSuspenseQueryOptions<CountResult<Schema, Model, T>>,
232
+ ): ModelSuspenseQueryResult<CountResult<Schema, Model, T>>;
233
+
234
+ useAggregate<T extends AggregateArgs<Schema, Model>>(
235
+ args: Subset<T, AggregateArgs<Schema, Model>>,
236
+ options?: ModelQueryOptions<AggregateResult<Schema, Model, T>>,
237
+ ): ModelQueryResult<AggregateResult<Schema, Model, T>>;
238
+
239
+ useSuspenseAggregate<T extends AggregateArgs<Schema, Model>>(
240
+ args: Subset<T, AggregateArgs<Schema, Model>>,
241
+ options?: ModelSuspenseQueryOptions<AggregateResult<Schema, Model, T>>,
242
+ ): ModelSuspenseQueryResult<AggregateResult<Schema, Model, T>>;
243
+
244
+ useGroupBy<T extends GroupByArgs<Schema, Model>>(
245
+ args: Subset<T, GroupByArgs<Schema, Model>>,
246
+ options?: ModelQueryOptions<GroupByResult<Schema, Model, T>>,
247
+ ): ModelQueryResult<GroupByResult<Schema, Model, T>>;
248
+
249
+ useSuspenseGroupBy<T extends GroupByArgs<Schema, Model>>(
250
+ args: Subset<T, GroupByArgs<Schema, Model>>,
251
+ options?: ModelSuspenseQueryOptions<GroupByResult<Schema, Model, T>>,
252
+ ): ModelSuspenseQueryResult<GroupByResult<Schema, Model, T>>;
253
+ }
254
+ >;
255
+
227
256
  /**
228
257
  * Gets data query hooks for all models in the schema.
229
258
  */
230
- export function useClientQueries<Schema extends SchemaDef>(schema: Schema): SchemaHooks<Schema> {
259
+ export function useClientQueries<Schema extends SchemaDef>(schema: Schema): ClientHooks<Schema> {
231
260
  return Object.keys(schema.models).reduce((acc, model) => {
232
261
  (acc as any)[lowerCaseFirst(model)] = useModelQueries(schema, model as GetModels<Schema>);
233
262
  return acc;
234
- }, {} as SchemaHooks<Schema>);
263
+ }, {} as ClientHooks<Schema>);
235
264
  }
236
265
 
237
266
  /**
@@ -282,63 +311,63 @@ export function useModelQueries<Schema extends SchemaDef, Model extends GetModel
282
311
  },
283
312
 
284
313
  useCreate: (options?: any) => {
285
- return useInternalMutation(schema, modelName, 'POST', 'create', options, true);
314
+ return useInternalMutation(schema, modelName, 'POST', 'create', options);
286
315
  },
287
316
 
288
317
  useCreateMany: (options?: any) => {
289
- return useInternalMutation(schema, modelName, 'POST', 'createMany', options, false);
318
+ return useInternalMutation(schema, modelName, 'POST', 'createMany', options);
290
319
  },
291
320
 
292
321
  useCreateManyAndReturn: (options?: any) => {
293
- return useInternalMutation(schema, modelName, 'POST', 'createManyAndReturn', options, true);
322
+ return useInternalMutation(schema, modelName, 'POST', 'createManyAndReturn', options);
294
323
  },
295
324
 
296
325
  useUpdate: (options?: any) => {
297
- return useInternalMutation(schema, modelName, 'PUT', 'update', options, true);
326
+ return useInternalMutation(schema, modelName, 'PUT', 'update', options);
298
327
  },
299
328
 
300
329
  useUpdateMany: (options?: any) => {
301
- return useInternalMutation(schema, modelName, 'PUT', 'updateMany', options, false);
330
+ return useInternalMutation(schema, modelName, 'PUT', 'updateMany', options);
302
331
  },
303
332
 
304
333
  useUpdateManyAndReturn: (options?: any) => {
305
- return useInternalMutation(schema, modelName, 'PUT', 'updateManyAndReturn', options, true);
334
+ return useInternalMutation(schema, modelName, 'PUT', 'updateManyAndReturn', options);
306
335
  },
307
336
 
308
337
  useUpsert: (options?: any) => {
309
- return useInternalMutation(schema, modelName, 'POST', 'upsert', options, true);
338
+ return useInternalMutation(schema, modelName, 'POST', 'upsert', options);
310
339
  },
311
340
 
312
341
  useDelete: (options?: any) => {
313
- return useInternalMutation(schema, modelName, 'DELETE', 'delete', options, true);
342
+ return useInternalMutation(schema, modelName, 'DELETE', 'delete', options);
314
343
  },
315
344
 
316
345
  useDeleteMany: (options?: any) => {
317
- return useInternalMutation(schema, modelName, 'DELETE', 'deleteMany', options, false);
346
+ return useInternalMutation(schema, modelName, 'DELETE', 'deleteMany', options);
318
347
  },
319
348
 
320
- useCount: (options?: any) => {
321
- return useInternalQuery(schema, modelName, 'count', undefined, options);
349
+ useCount: (args: any, options?: any) => {
350
+ return useInternalQuery(schema, modelName, 'count', args, options);
322
351
  },
323
352
 
324
- useSuspenseCount: (options?: any) => {
325
- return useInternalSuspenseQuery(schema, modelName, 'count', undefined, options);
353
+ useSuspenseCount: (args: any, options?: any) => {
354
+ return useInternalSuspenseQuery(schema, modelName, 'count', args, options);
326
355
  },
327
356
 
328
- useAggregate: (options?: any) => {
329
- return useInternalQuery(schema, modelName, 'aggregate', undefined, options);
357
+ useAggregate: (args: any, options?: any) => {
358
+ return useInternalQuery(schema, modelName, 'aggregate', args, options);
330
359
  },
331
360
 
332
- useSuspenseAggregate: (options?: any) => {
333
- return useInternalSuspenseQuery(schema, modelName, 'aggregate', undefined, options);
361
+ useSuspenseAggregate: (args: any, options?: any) => {
362
+ return useInternalSuspenseQuery(schema, modelName, 'aggregate', args, options);
334
363
  },
335
364
 
336
- useGroupBy: (options?: any) => {
337
- return useInternalQuery(schema, modelName, 'groupBy', undefined, options);
365
+ useGroupBy: (args: any, options?: any) => {
366
+ return useInternalQuery(schema, modelName, 'groupBy', args, options);
338
367
  },
339
368
 
340
- useSuspenseGroupBy: (options?: any) => {
341
- return useInternalSuspenseQuery(schema, modelName, 'groupBy', undefined, options);
369
+ useSuspenseGroupBy: (args: any, options?: any) => {
370
+ return useInternalSuspenseQuery(schema, modelName, 'groupBy', args, options);
342
371
  },
343
372
  } as ModelQueryHooks<Schema, Model>;
344
373
  }
@@ -360,7 +389,7 @@ export function useInternalQuery<TQueryFnData, TData>(
360
389
  queryKey,
361
390
  ...useQuery({
362
391
  queryKey,
363
- queryFn: ({ signal }) => fetcher<TQueryFnData, false>(reqUrl, { signal }, fetch, false),
392
+ queryFn: ({ signal }) => fetcher<TQueryFnData>(reqUrl, { signal }, fetch),
364
393
  ...options,
365
394
  }),
366
395
  };
@@ -383,7 +412,7 @@ export function useInternalSuspenseQuery<TQueryFnData, TData>(
383
412
  queryKey,
384
413
  ...useSuspenseQuery({
385
414
  queryKey,
386
- queryFn: ({ signal }) => fetcher<TQueryFnData, false>(reqUrl, { signal }, fetch, false),
415
+ queryFn: ({ signal }) => fetcher<TQueryFnData>(reqUrl, { signal }, fetch),
387
416
  ...options,
388
417
  }),
389
418
  };
@@ -394,11 +423,14 @@ export function useInternalInfiniteQuery<TQueryFnData, TData>(
394
423
  model: string,
395
424
  operation: string,
396
425
  args: unknown,
397
- options: Omit<
398
- UseInfiniteQueryOptions<TQueryFnData, DefaultError, InfiniteData<TData>>,
399
- 'queryKey' | 'initialPageParam'
400
- >,
426
+ options:
427
+ | Omit<
428
+ UseInfiniteQueryOptions<TQueryFnData, DefaultError, InfiniteData<TData>>,
429
+ 'queryKey' | 'initialPageParam'
430
+ >
431
+ | undefined,
401
432
  ) {
433
+ options = options ?? { getNextPageParam: () => undefined };
402
434
  const { endpoint, fetch } = useHooksContext();
403
435
  const queryKey = getQueryKey(model, operation, args, { infinite: true, optimisticUpdate: false });
404
436
  return {
@@ -406,12 +438,7 @@ export function useInternalInfiniteQuery<TQueryFnData, TData>(
406
438
  ...useInfiniteQuery({
407
439
  queryKey,
408
440
  queryFn: ({ pageParam, signal }) => {
409
- return fetcher<TQueryFnData, false>(
410
- makeUrl(endpoint, model, operation, pageParam ?? args),
411
- { signal },
412
- fetch,
413
- false,
414
- );
441
+ return fetcher<TQueryFnData>(makeUrl(endpoint, model, operation, pageParam ?? args), { signal }, fetch);
415
442
  },
416
443
  initialPageParam: args,
417
444
  ...options,
@@ -436,12 +463,7 @@ export function useInternalSuspenseInfiniteQuery<TQueryFnData, TData>(
436
463
  ...useSuspenseInfiniteQuery({
437
464
  queryKey,
438
465
  queryFn: ({ pageParam, signal }) => {
439
- return fetcher<TQueryFnData, false>(
440
- makeUrl(endpoint, model, operation, pageParam ?? args),
441
- { signal },
442
- fetch,
443
- false,
444
- );
466
+ return fetcher<TQueryFnData>(makeUrl(endpoint, model, operation, pageParam ?? args), { signal }, fetch);
445
467
  },
446
468
  initialPageParam: args,
447
469
  ...options,
@@ -460,20 +482,14 @@ export function useInternalSuspenseInfiniteQuery<TQueryFnData, TData>(
460
482
  * @param options The react-query options.
461
483
  * @param checkReadBack Whether to check for read back errors and return undefined if found.
462
484
  */
463
- export function useInternalMutation<
464
- TArgs,
465
- R = any,
466
- C extends boolean = boolean,
467
- Result = C extends true ? R | undefined : R,
468
- >(
485
+ export function useInternalMutation<TArgs, R = any>(
469
486
  schema: SchemaDef,
470
487
  model: string,
471
488
  method: 'POST' | 'PUT' | 'DELETE',
472
489
  operation: string,
473
- options?: Omit<UseMutationOptions<Result, DefaultError, TArgs>, 'mutationFn'> & ExtraMutationOptions,
474
- checkReadBack?: C,
490
+ options?: Omit<UseMutationOptions<R, DefaultError, TArgs>, 'mutationFn'> & ExtraMutationOptions,
475
491
  ) {
476
- const { endpoint, fetch } = useHooksContext();
492
+ const { endpoint, fetch, logging } = useHooksContext();
477
493
  const queryClient = useQueryClient();
478
494
  const mutationFn = (data: any) => {
479
495
  const reqUrl =
@@ -487,13 +503,12 @@ export function useInternalMutation<
487
503
  body: marshal(data),
488
504
  }),
489
505
  };
490
- return fetcher<R, C>(reqUrl, fetchInit, fetch, checkReadBack) as Promise<Result>;
506
+ return fetcher<R>(reqUrl, fetchInit, fetch) as Promise<R>;
491
507
  };
492
508
 
493
509
  const finalOptions = { ...options, mutationFn };
494
510
  const invalidateQueries = options?.invalidateQueries !== false;
495
511
  const optimisticUpdate = !!options?.optimisticUpdate;
496
- const { logging } = useContext(QuerySettingsContext);
497
512
 
498
513
  if (operation) {
499
514
  if (invalidateQueries) {