@zenstackhq/tanstack-query 3.0.0-beta.28 → 3.0.0-beta.29

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zenstackhq/tanstack-query",
3
- "version": "3.0.0-beta.28",
3
+ "version": "3.0.0-beta.29",
4
4
  "description": "TanStack Query Client for consuming ZenStack v3's CRUD service",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -52,9 +52,9 @@
52
52
  "dependencies": {
53
53
  "decimal.js": "^10.4.3",
54
54
  "superjson": "^2.2.3",
55
- "@zenstackhq/schema": "3.0.0-beta.28",
56
- "@zenstackhq/common-helpers": "3.0.0-beta.28",
57
- "@zenstackhq/orm": "3.0.0-beta.28"
55
+ "@zenstackhq/common-helpers": "3.0.0-beta.29",
56
+ "@zenstackhq/orm": "3.0.0-beta.29",
57
+ "@zenstackhq/schema": "3.0.0-beta.29"
58
58
  },
59
59
  "devDependencies": {
60
60
  "@tanstack/react-query": "5.90.6",
@@ -68,11 +68,12 @@
68
68
  "react": "19.2.0",
69
69
  "vue": "3.5.22",
70
70
  "svelte": "5.43.3",
71
- "@zenstackhq/eslint-config": "3.0.0-beta.28",
72
- "@zenstackhq/language": "3.0.0-beta.28",
73
- "@zenstackhq/sdk": "3.0.0-beta.28",
74
- "@zenstackhq/typescript-config": "3.0.0-beta.28",
75
- "@zenstackhq/vitest-config": "3.0.0-beta.28"
71
+ "@zenstackhq/language": "3.0.0-beta.29",
72
+ "@zenstackhq/cli": "3.0.0-beta.29",
73
+ "@zenstackhq/typescript-config": "3.0.0-beta.29",
74
+ "@zenstackhq/eslint-config": "3.0.0-beta.29",
75
+ "@zenstackhq/sdk": "3.0.0-beta.29",
76
+ "@zenstackhq/vitest-config": "3.0.0-beta.29"
76
77
  },
77
78
  "peerDependencies": {
78
79
  "@tanstack/react-query": "^5.0.0",
@@ -96,7 +97,7 @@
96
97
  "lint": "eslint src --ext ts",
97
98
  "test": "vitest run",
98
99
  "pack": "pnpm pack",
99
- "test:generate": "tsx ../../../scripts/test-generate.ts tests",
100
+ "test:generate": "tsx ../../../scripts/test-generate.ts test --lite-only",
100
101
  "test:typecheck": "tsc --noEmit --project tsconfig.test.json"
101
102
  }
102
103
  }
package/src/react.ts CHANGED
@@ -24,7 +24,6 @@ import type {
24
24
  AggregateArgs,
25
25
  AggregateResult,
26
26
  BatchResult,
27
- ClientOptions,
28
27
  CountArgs,
29
28
  CountResult,
30
29
  CreateArgs,
@@ -37,8 +36,10 @@ import type {
37
36
  FindUniqueArgs,
38
37
  GroupByArgs,
39
38
  GroupByResult,
39
+ QueryOptions,
40
40
  SelectSubset,
41
- SimplifiedModelResult,
41
+ SimplifiedPlainResult,
42
+ SimplifiedResult,
42
43
  Subset,
43
44
  UpdateArgs,
44
45
  UpdateManyAndReturnArgs,
@@ -129,101 +130,99 @@ export type ModelMutationModelResult<
129
130
  Model extends GetModels<Schema>,
130
131
  TArgs,
131
132
  Array extends boolean = false,
132
- > = Omit<
133
- ModelMutationResult<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, TArgs, false, Array>, TArgs>,
134
- 'mutateAsync'
135
- > & {
133
+ Options extends QueryOptions<Schema> = QueryOptions<Schema>,
134
+ > = Omit<ModelMutationResult<SimplifiedResult<Schema, Model, TArgs, Options, false, Array>, TArgs>, 'mutateAsync'> & {
136
135
  mutateAsync<T extends TArgs>(
137
136
  args: T,
138
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T, false, Array>, T>,
139
- ): Promise<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T, false, Array>>;
137
+ options?: ModelMutationOptions<SimplifiedResult<Schema, Model, T, Options, false, Array>, T>,
138
+ ): Promise<SimplifiedResult<Schema, Model, T, Options, false, Array>>;
140
139
  };
141
140
 
142
- export type ClientHooks<Schema extends SchemaDef> = {
143
- [Model in GetModels<Schema> as `${Uncapitalize<Model>}`]: ModelQueryHooks<Schema, Model>;
141
+ export type ClientHooks<Schema extends SchemaDef, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = {
142
+ [Model in GetModels<Schema> as `${Uncapitalize<Model>}`]: ModelQueryHooks<Schema, Model, Options>;
144
143
  };
145
144
 
146
145
  // Note that we can potentially use TypeScript's mapped type to directly map from ORM contract, but that seems
147
146
  // to significantly slow down tsc performance ...
148
- export type ModelQueryHooks<Schema extends SchemaDef, Model extends GetModels<Schema>> = TrimDelegateModelOperations<
147
+ export type ModelQueryHooks<
148
+ Schema extends SchemaDef,
149
+ Model extends GetModels<Schema>,
150
+ Options extends QueryOptions<Schema> = QueryOptions<Schema>,
151
+ > = TrimDelegateModelOperations<
149
152
  Schema,
150
153
  Model,
151
154
  {
152
155
  useFindUnique<T extends FindUniqueArgs<Schema, Model>>(
153
156
  args: SelectSubset<T, FindUniqueArgs<Schema, Model>>,
154
- options?: ModelQueryOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T> | null>,
155
- ): ModelQueryResult<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T> | null>;
157
+ options?: ModelQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options> | null>,
158
+ ): ModelQueryResult<SimplifiedPlainResult<Schema, Model, T, Options> | null>;
156
159
 
157
160
  useSuspenseFindUnique<T extends FindUniqueArgs<Schema, Model>>(
158
161
  args: SelectSubset<T, FindUniqueArgs<Schema, Model>>,
159
- options?: ModelSuspenseQueryOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T> | null>,
160
- ): ModelSuspenseQueryResult<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T> | null>;
162
+ options?: ModelSuspenseQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options> | null>,
163
+ ): ModelSuspenseQueryResult<SimplifiedPlainResult<Schema, Model, T, Options> | null>;
161
164
 
162
165
  useFindFirst<T extends FindFirstArgs<Schema, Model>>(
163
166
  args?: SelectSubset<T, FindFirstArgs<Schema, Model>>,
164
- options?: ModelQueryOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T> | null>,
165
- ): ModelQueryResult<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T> | null>;
167
+ options?: ModelQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options> | null>,
168
+ ): ModelQueryResult<SimplifiedPlainResult<Schema, Model, T, Options> | null>;
166
169
 
167
170
  useSuspenseFindFirst<T extends FindFirstArgs<Schema, Model>>(
168
171
  args?: SelectSubset<T, FindFirstArgs<Schema, Model>>,
169
- options?: ModelSuspenseQueryOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T> | null>,
170
- ): ModelSuspenseQueryResult<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T> | null>;
172
+ options?: ModelSuspenseQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options> | null>,
173
+ ): ModelSuspenseQueryResult<SimplifiedPlainResult<Schema, Model, T, Options> | null>;
171
174
 
172
175
  useFindMany<T extends FindManyArgs<Schema, Model>>(
173
176
  args?: SelectSubset<T, FindManyArgs<Schema, Model>>,
174
- options?: ModelQueryOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[]>,
175
- ): ModelQueryResult<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[]>;
177
+ options?: ModelQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options>[]>,
178
+ ): ModelQueryResult<SimplifiedPlainResult<Schema, Model, T, Options>[]>;
176
179
 
177
180
  useSuspenseFindMany<T extends FindManyArgs<Schema, Model>>(
178
181
  args?: SelectSubset<T, FindManyArgs<Schema, Model>>,
179
- options?: ModelSuspenseQueryOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[]>,
180
- ): ModelSuspenseQueryResult<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[]>;
182
+ options?: ModelSuspenseQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options>[]>,
183
+ ): ModelSuspenseQueryResult<SimplifiedPlainResult<Schema, Model, T, Options>[]>;
181
184
 
182
185
  useInfiniteFindMany<T extends FindManyArgs<Schema, Model>>(
183
186
  args?: SelectSubset<T, FindManyArgs<Schema, Model>>,
184
- options?: ModelInfiniteQueryOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[]>,
185
- ): ModelInfiniteQueryResult<InfiniteData<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[]>>;
187
+ options?: ModelInfiniteQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options>[]>,
188
+ ): ModelInfiniteQueryResult<InfiniteData<SimplifiedPlainResult<Schema, Model, T, Options>[]>>;
186
189
 
187
190
  useSuspenseInfiniteFindMany<T extends FindManyArgs<Schema, Model>>(
188
191
  args?: SelectSubset<T, FindManyArgs<Schema, Model>>,
189
- options?: ModelSuspenseInfiniteQueryOptions<
190
- SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[]
191
- >,
192
- ): ModelSuspenseInfiniteQueryResult<
193
- InfiniteData<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[]>
194
- >;
192
+ options?: ModelSuspenseInfiniteQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options>[]>,
193
+ ): ModelSuspenseInfiniteQueryResult<InfiniteData<SimplifiedPlainResult<Schema, Model, T, Options>[]>>;
195
194
 
196
195
  useCreate<T extends CreateArgs<Schema, Model>>(
197
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>, T>,
198
- ): ModelMutationModelResult<Schema, Model, T>;
196
+ options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
197
+ ): ModelMutationModelResult<Schema, Model, T, false, Options>;
199
198
 
200
199
  useCreateMany<T extends CreateManyArgs<Schema, Model>>(
201
200
  options?: ModelMutationOptions<BatchResult, T>,
202
201
  ): ModelMutationResult<BatchResult, T>;
203
202
 
204
203
  useCreateManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model>>(
205
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[], T>,
206
- ): ModelMutationModelResult<Schema, Model, T, true>;
204
+ options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>[], T>,
205
+ ): ModelMutationModelResult<Schema, Model, T, true, Options>;
207
206
 
208
207
  useUpdate<T extends UpdateArgs<Schema, Model>>(
209
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>, T>,
210
- ): ModelMutationModelResult<Schema, Model, T>;
208
+ options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
209
+ ): ModelMutationModelResult<Schema, Model, T, false, Options>;
211
210
 
212
211
  useUpdateMany<T extends UpdateManyArgs<Schema, Model>>(
213
212
  options?: ModelMutationOptions<BatchResult, T>,
214
213
  ): ModelMutationResult<BatchResult, T>;
215
214
 
216
215
  useUpdateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model>>(
217
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[], T>,
218
- ): ModelMutationModelResult<Schema, Model, T, true>;
216
+ options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>[], T>,
217
+ ): ModelMutationModelResult<Schema, Model, T, true, Options>;
219
218
 
220
219
  useUpsert<T extends UpsertArgs<Schema, Model>>(
221
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>, T>,
222
- ): ModelMutationModelResult<Schema, Model, T>;
220
+ options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
221
+ ): ModelMutationModelResult<Schema, Model, T, false, Options>;
223
222
 
224
223
  useDelete<T extends DeleteArgs<Schema, Model>>(
225
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>, T>,
226
- ): ModelMutationModelResult<Schema, Model, T>;
224
+ options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
225
+ ): ModelMutationModelResult<Schema, Model, T, false, Options>;
227
226
 
228
227
  useDeleteMany<T extends DeleteManyArgs<Schema, Model>>(
229
228
  options?: ModelMutationOptions<BatchResult, T>,
@@ -264,20 +263,29 @@ export type ModelQueryHooks<Schema extends SchemaDef, Model extends GetModels<Sc
264
263
  /**
265
264
  * Gets data query hooks for all models in the schema.
266
265
  */
267
- export function useClientQueries<Schema extends SchemaDef>(schema: Schema): ClientHooks<Schema> {
268
- return Object.keys(schema.models).reduce((acc, model) => {
269
- (acc as any)[lowerCaseFirst(model)] = useModelQueries(schema, model as GetModels<Schema>);
270
- return acc;
271
- }, {} as ClientHooks<Schema>);
266
+ export function useClientQueries<Schema extends SchemaDef, Options extends QueryOptions<Schema> = QueryOptions<Schema>>(
267
+ schema: Schema,
268
+ ): ClientHooks<Schema, Options> {
269
+ return Object.keys(schema.models).reduce(
270
+ (acc, model) => {
271
+ (acc as any)[lowerCaseFirst(model)] = useModelQueries<Schema, GetModels<Schema>, Options>(
272
+ schema,
273
+ model as GetModels<Schema>,
274
+ );
275
+ return acc;
276
+ },
277
+ {} as ClientHooks<Schema, Options>,
278
+ );
272
279
  }
273
280
 
274
281
  /**
275
282
  * Gets data query hooks for a specific model in the schema.
276
283
  */
277
- export function useModelQueries<Schema extends SchemaDef, Model extends GetModels<Schema>>(
278
- schema: Schema,
279
- model: Model,
280
- ): ModelQueryHooks<Schema, Model> {
284
+ export function useModelQueries<
285
+ Schema extends SchemaDef,
286
+ Model extends GetModels<Schema>,
287
+ Options extends QueryOptions<Schema>,
288
+ >(schema: Schema, model: Model): ModelQueryHooks<Schema, Model, Options> {
281
289
  const modelDef = Object.values(schema.models).find((m) => m.name.toLowerCase() === model.toLowerCase());
282
290
  if (!modelDef) {
283
291
  throw new Error(`Model "${model}" not found in schema`);
@@ -377,7 +385,7 @@ export function useModelQueries<Schema extends SchemaDef, Model extends GetModel
377
385
  useSuspenseGroupBy: (args: any, options?: any) => {
378
386
  return useInternalSuspenseQuery(schema, modelName, 'groupBy', args, options);
379
387
  },
380
- } as ModelQueryHooks<Schema, Model>;
388
+ } as ModelQueryHooks<Schema, Model, Options>;
381
389
  }
382
390
 
383
391
  export function useInternalQuery<TQueryFnData, TData>(
package/src/svelte.ts CHANGED
@@ -20,7 +20,6 @@ import type {
20
20
  AggregateArgs,
21
21
  AggregateResult,
22
22
  BatchResult,
23
- ClientOptions,
24
23
  CountArgs,
25
24
  CountResult,
26
25
  CreateArgs,
@@ -33,8 +32,10 @@ import type {
33
32
  FindUniqueArgs,
34
33
  GroupByArgs,
35
34
  GroupByResult,
35
+ QueryOptions,
36
36
  SelectSubset,
37
- SimplifiedModelResult,
37
+ SimplifiedPlainResult,
38
+ SimplifiedResult,
38
39
  Subset,
39
40
  UpdateArgs,
40
41
  UpdateManyAndReturnArgs,
@@ -117,84 +118,82 @@ export type ModelMutationModelResult<
117
118
  Model extends GetModels<Schema>,
118
119
  TArgs,
119
120
  Array extends boolean = false,
121
+ Options extends QueryOptions<Schema> = QueryOptions<Schema>,
120
122
  > = Readable<
121
123
  Omit<
122
- UnwrapStore<
123
- ModelMutationResult<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, TArgs, false, Array>, TArgs>
124
- >,
124
+ UnwrapStore<ModelMutationResult<SimplifiedResult<Schema, Model, TArgs, Options, false, Array>, TArgs>>,
125
125
  'mutateAsync'
126
126
  > & {
127
127
  mutateAsync<T extends TArgs>(
128
128
  args: T,
129
- options?: ModelMutationOptions<
130
- SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T, false, Array>,
131
- T
132
- >,
133
- ): Promise<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T, false, Array>>;
129
+ options?: ModelMutationOptions<SimplifiedResult<Schema, Model, T, Options, false, Array>, T>,
130
+ ): Promise<SimplifiedResult<Schema, Model, T, Options, false, Array>>;
134
131
  }
135
132
  >;
136
133
 
137
- export type ClientHooks<Schema extends SchemaDef> = {
138
- [Model in GetModels<Schema> as `${Uncapitalize<Model>}`]: ModelQueryHooks<Schema, Model>;
134
+ export type ClientHooks<Schema extends SchemaDef, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = {
135
+ [Model in GetModels<Schema> as `${Uncapitalize<Model>}`]: ModelQueryHooks<Schema, Model, Options>;
139
136
  };
140
137
 
141
138
  // Note that we can potentially use TypeScript's mapped type to directly map from ORM contract, but that seems
142
139
  // to significantly slow down tsc performance ...
143
- export type ModelQueryHooks<Schema extends SchemaDef, Model extends GetModels<Schema>> = TrimDelegateModelOperations<
140
+ export type ModelQueryHooks<
141
+ Schema extends SchemaDef,
142
+ Model extends GetModels<Schema>,
143
+ Options extends QueryOptions<Schema> = QueryOptions<Schema>,
144
+ > = TrimDelegateModelOperations<
144
145
  Schema,
145
146
  Model,
146
147
  {
147
148
  useFindUnique<T extends FindUniqueArgs<Schema, Model>>(
148
149
  args: SelectSubset<T, FindUniqueArgs<Schema, Model>>,
149
- options?: ModelQueryOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T> | null>,
150
- ): ModelQueryResult<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T> | null>;
150
+ options?: ModelQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options> | null>,
151
+ ): ModelQueryResult<SimplifiedPlainResult<Schema, Model, T, Options> | null>;
151
152
 
152
153
  useFindFirst<T extends FindFirstArgs<Schema, Model>>(
153
154
  args?: SelectSubset<T, FindFirstArgs<Schema, Model>>,
154
- options?: ModelQueryOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T> | null>,
155
- ): ModelQueryResult<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T> | null>;
155
+ options?: ModelQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options> | null>,
156
+ ): ModelQueryResult<SimplifiedPlainResult<Schema, Model, T, Options> | null>;
156
157
 
157
158
  useFindMany<T extends FindManyArgs<Schema, Model>>(
158
159
  args?: SelectSubset<T, FindManyArgs<Schema, Model>>,
159
- options?: ModelQueryOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[]>,
160
- ): ModelQueryResult<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[]>;
160
+ options?: ModelQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options>[]>,
161
+ ): ModelQueryResult<SimplifiedPlainResult<Schema, Model, T, Options>[]>;
161
162
 
162
163
  useInfiniteFindMany<T extends FindManyArgs<Schema, Model>>(
163
164
  args?: SelectSubset<T, FindManyArgs<Schema, Model>>,
164
- options?: ModelInfiniteQueryOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[]>,
165
- ): ModelInfiniteQueryResult<InfiniteData<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[]>>;
165
+ options?: ModelInfiniteQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options>[]>,
166
+ ): ModelInfiniteQueryResult<InfiniteData<SimplifiedPlainResult<Schema, Model, T, Options>[]>>;
166
167
 
167
168
  useCreate<T extends CreateArgs<Schema, Model>>(
168
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>, T>,
169
- ): ModelMutationModelResult<Schema, Model, T>;
169
+ options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
170
+ ): ModelMutationModelResult<Schema, Model, T, false, Options>;
170
171
 
171
172
  useCreateMany<T extends CreateManyArgs<Schema, Model>>(
172
173
  options?: ModelMutationOptions<BatchResult, T>,
173
174
  ): ModelMutationResult<BatchResult, T>;
174
175
 
175
176
  useCreateManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model>>(
176
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[], T>,
177
- ): ModelMutationModelResult<Schema, Model, T, true>;
177
+ options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>[], T>,
178
+ ): ModelMutationModelResult<Schema, Model, T, true, Options>;
178
179
 
179
180
  useUpdate<T extends UpdateArgs<Schema, Model>>(
180
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>, T>,
181
- ): ModelMutationModelResult<Schema, Model, T>;
182
-
181
+ options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
182
+ ): ModelMutationModelResult<Schema, Model, T, false, Options>;
183
183
  useUpdateMany<T extends UpdateManyArgs<Schema, Model>>(
184
184
  options?: ModelMutationOptions<BatchResult, T>,
185
185
  ): ModelMutationResult<BatchResult, T>;
186
186
 
187
187
  useUpdateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model>>(
188
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[], T>,
189
- ): ModelMutationModelResult<Schema, Model, T, true>;
188
+ options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>[], T>,
189
+ ): ModelMutationModelResult<Schema, Model, T, true, Options>;
190
190
 
191
191
  useUpsert<T extends UpsertArgs<Schema, Model>>(
192
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>, T>,
193
- ): ModelMutationModelResult<Schema, Model, T>;
194
-
192
+ options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
193
+ ): ModelMutationModelResult<Schema, Model, T, false, Options>;
195
194
  useDelete<T extends DeleteArgs<Schema, Model>>(
196
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>, T>,
197
- ): ModelMutationModelResult<Schema, Model, T>;
195
+ options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
196
+ ): ModelMutationModelResult<Schema, Model, T, false, Options>;
198
197
 
199
198
  useDeleteMany<T extends DeleteManyArgs<Schema, Model>>(
200
199
  options?: ModelMutationOptions<BatchResult, T>,
@@ -220,20 +219,29 @@ export type ModelQueryHooks<Schema extends SchemaDef, Model extends GetModels<Sc
220
219
  /**
221
220
  * Gets data query hooks for all models in the schema.
222
221
  */
223
- export function useClientQueries<Schema extends SchemaDef>(schema: Schema): ClientHooks<Schema> {
224
- return Object.keys(schema.models).reduce((acc, model) => {
225
- (acc as any)[lowerCaseFirst(model)] = useModelQueries(schema, model as GetModels<Schema>);
226
- return acc;
227
- }, {} as ClientHooks<Schema>);
222
+ export function useClientQueries<Schema extends SchemaDef, Options extends QueryOptions<Schema> = QueryOptions<Schema>>(
223
+ schema: Schema,
224
+ ): ClientHooks<Schema, Options> {
225
+ return Object.keys(schema.models).reduce(
226
+ (acc, model) => {
227
+ (acc as any)[lowerCaseFirst(model)] = useModelQueries<Schema, GetModels<Schema>, Options>(
228
+ schema,
229
+ model as GetModels<Schema>,
230
+ );
231
+ return acc;
232
+ },
233
+ {} as ClientHooks<Schema, Options>,
234
+ );
228
235
  }
229
236
 
230
237
  /**
231
238
  * Gets data query hooks for a specific model in the schema.
232
239
  */
233
- export function useModelQueries<Schema extends SchemaDef, Model extends GetModels<Schema>>(
234
- schema: Schema,
235
- model: Model,
236
- ): ModelQueryHooks<Schema, Model> {
240
+ export function useModelQueries<
241
+ Schema extends SchemaDef,
242
+ Model extends GetModels<Schema>,
243
+ Options extends QueryOptions<Schema>,
244
+ >(schema: Schema, model: Model): ModelQueryHooks<Schema, Model, Options> {
237
245
  const modelDef = Object.values(schema.models).find((m) => m.name.toLowerCase() === model.toLowerCase());
238
246
  if (!modelDef) {
239
247
  throw new Error(`Model "${model}" not found in schema`);
@@ -305,7 +313,7 @@ export function useModelQueries<Schema extends SchemaDef, Model extends GetModel
305
313
  useGroupBy: (args: any, options?: any) => {
306
314
  return useInternalQuery(schema, modelName, 'groupBy', args, options);
307
315
  },
308
- } as ModelQueryHooks<Schema, Model>;
316
+ } as ModelQueryHooks<Schema, Model, Options>;
309
317
  }
310
318
 
311
319
  export function useInternalQuery<TQueryFnData, TData>(
package/src/vue.ts CHANGED
@@ -18,7 +18,6 @@ import type {
18
18
  AggregateArgs,
19
19
  AggregateResult,
20
20
  BatchResult,
21
- ClientOptions,
22
21
  CountArgs,
23
22
  CountResult,
24
23
  CreateArgs,
@@ -31,8 +30,10 @@ import type {
31
30
  FindUniqueArgs,
32
31
  GroupByArgs,
33
32
  GroupByResult,
33
+ QueryOptions,
34
34
  SelectSubset,
35
- SimplifiedModelResult,
35
+ SimplifiedPlainResult,
36
+ SimplifiedResult,
36
37
  Subset,
37
38
  UpdateArgs,
38
39
  UpdateManyAndReturnArgs,
@@ -106,77 +107,82 @@ export type ModelMutationModelResult<
106
107
  Model extends GetModels<Schema>,
107
108
  TArgs,
108
109
  Array extends boolean = false,
110
+ Options extends QueryOptions<Schema> = QueryOptions<Schema>,
109
111
  > = Omit<
110
- ModelMutationResult<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, TArgs, false, Array>, TArgs>,
112
+ ModelMutationResult<SimplifiedResult<Schema, Model, TArgs, QueryOptions<Schema>, false, Array>, TArgs>,
111
113
  'mutateAsync'
112
114
  > & {
113
115
  mutateAsync<T extends TArgs>(
114
116
  args: T,
115
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T, false, Array>, T>,
116
- ): Promise<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T, false, Array>>;
117
+ options?: ModelMutationOptions<SimplifiedResult<Schema, Model, T, Options, false, Array>, T>,
118
+ ): Promise<SimplifiedResult<Schema, Model, T, Options, false, Array>>;
117
119
  };
118
120
 
119
- export type ClientHooks<Schema extends SchemaDef> = {
120
- [Model in GetModels<Schema> as `${Uncapitalize<Model>}`]: ModelQueryHooks<Schema, Model>;
121
+ export type ClientHooks<Schema extends SchemaDef, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = {
122
+ [Model in GetModels<Schema> as `${Uncapitalize<Model>}`]: ModelQueryHooks<Schema, Model, Options>;
121
123
  };
122
124
 
123
125
  // Note that we can potentially use TypeScript's mapped type to directly map from ORM contract, but that seems
124
126
  // to significantly slow down tsc performance ...
125
- export type ModelQueryHooks<Schema extends SchemaDef, Model extends GetModels<Schema>> = TrimDelegateModelOperations<
127
+ export type ModelQueryHooks<
128
+ Schema extends SchemaDef,
129
+ Model extends GetModels<Schema>,
130
+ Options extends QueryOptions<Schema> = QueryOptions<Schema>,
131
+ > = TrimDelegateModelOperations<
126
132
  Schema,
127
133
  Model,
128
134
  {
129
135
  useFindUnique<T extends FindUniqueArgs<Schema, Model>>(
130
136
  args: SelectSubset<T, FindUniqueArgs<Schema, Model>>,
131
- options?: ModelQueryOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T> | null>,
132
- ): ModelQueryResult<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T> | null>;
137
+ options?: ModelQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options> | null>,
138
+ ): ModelQueryResult<SimplifiedPlainResult<Schema, Model, T, Options> | null>;
133
139
 
134
140
  useFindFirst<T extends FindFirstArgs<Schema, Model>>(
135
141
  args?: SelectSubset<T, FindFirstArgs<Schema, Model>>,
136
- options?: ModelQueryOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T> | null>,
137
- ): ModelQueryResult<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T> | null>;
142
+ options?: ModelQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options> | null>,
143
+ ): ModelQueryResult<SimplifiedPlainResult<Schema, Model, T, Options> | null>;
138
144
 
139
145
  useFindMany<T extends FindManyArgs<Schema, Model>>(
140
146
  args?: SelectSubset<T, FindManyArgs<Schema, Model>>,
141
- options?: ModelQueryOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[]>,
142
- ): ModelQueryResult<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[]>;
147
+ options?: ModelQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options>[]>,
148
+ ): ModelQueryResult<SimplifiedPlainResult<Schema, Model, T, Options>[]>;
143
149
 
144
150
  useInfiniteFindMany<T extends FindManyArgs<Schema, Model>>(
145
151
  args?: SelectSubset<T, FindManyArgs<Schema, Model>>,
146
- options?: ModelInfiniteQueryOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[]>,
147
- ): ModelInfiniteQueryResult<InfiniteData<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[]>>;
152
+ options?: ModelInfiniteQueryOptions<SimplifiedPlainResult<Schema, Model, T, Options>[]>,
153
+ ): ModelInfiniteQueryResult<InfiniteData<SimplifiedPlainResult<Schema, Model, T, Options>[]>>;
148
154
 
149
155
  useCreate<T extends CreateArgs<Schema, Model>>(
150
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>, T>,
151
- ): ModelMutationModelResult<Schema, Model, T>;
156
+ options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
157
+ ): ModelMutationModelResult<Schema, Model, T, false, Options>;
152
158
 
153
159
  useCreateMany<T extends CreateManyArgs<Schema, Model>>(
154
160
  options?: ModelMutationOptions<BatchResult, T>,
155
161
  ): ModelMutationResult<BatchResult, T>;
156
162
 
157
163
  useCreateManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model>>(
158
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[], T>,
159
- ): ModelMutationModelResult<Schema, Model, T, true>;
164
+ options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>[], T>,
165
+ ): ModelMutationModelResult<Schema, Model, T, true, Options>;
160
166
 
161
167
  useUpdate<T extends UpdateArgs<Schema, Model>>(
162
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>, T>,
163
- ): ModelMutationModelResult<Schema, Model, T>;
168
+ options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
169
+ ): ModelMutationModelResult<Schema, Model, T, false, Options>;
164
170
 
165
171
  useUpdateMany<T extends UpdateManyArgs<Schema, Model>>(
166
172
  options?: ModelMutationOptions<BatchResult, T>,
167
173
  ): ModelMutationResult<BatchResult, T>;
168
174
 
169
175
  useUpdateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model>>(
170
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>[], T>,
171
- ): ModelMutationModelResult<Schema, Model, T, true>;
176
+ options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>[], T>,
177
+ ): ModelMutationModelResult<Schema, Model, T, true, Options>;
172
178
 
173
179
  useUpsert<T extends UpsertArgs<Schema, Model>>(
174
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>, T>,
175
- ): ModelMutationModelResult<Schema, Model, T>;
180
+ options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
181
+ ): ModelMutationModelResult<Schema, Model, T, false, Options>;
176
182
 
177
183
  useDelete<T extends DeleteArgs<Schema, Model>>(
178
- options?: ModelMutationOptions<SimplifiedModelResult<Schema, Model, ClientOptions<Schema>, T>, T>,
179
- ): ModelMutationModelResult<Schema, Model, T>;
184
+ options?: ModelMutationOptions<SimplifiedPlainResult<Schema, Model, T, Options>, T>,
185
+ ): ModelMutationModelResult<Schema, Model, T, false, Options>;
180
186
 
181
187
  useDeleteMany<T extends DeleteManyArgs<Schema, Model>>(
182
188
  options?: ModelMutationOptions<BatchResult, T>,
@@ -202,20 +208,29 @@ export type ModelQueryHooks<Schema extends SchemaDef, Model extends GetModels<Sc
202
208
  /**
203
209
  * Gets data query hooks for all models in the schema.
204
210
  */
205
- export function useClientQueries<Schema extends SchemaDef>(schema: Schema): ClientHooks<Schema> {
206
- return Object.keys(schema.models).reduce((acc, model) => {
207
- (acc as any)[lowerCaseFirst(model)] = useModelQueries(schema, model as GetModels<Schema>);
208
- return acc;
209
- }, {} as ClientHooks<Schema>);
211
+ export function useClientQueries<Schema extends SchemaDef, Options extends QueryOptions<Schema> = QueryOptions<Schema>>(
212
+ schema: Schema,
213
+ ): ClientHooks<Schema, Options> {
214
+ return Object.keys(schema.models).reduce(
215
+ (acc, model) => {
216
+ (acc as any)[lowerCaseFirst(model)] = useModelQueries<Schema, GetModels<Schema>, Options>(
217
+ schema,
218
+ model as GetModels<Schema>,
219
+ );
220
+ return acc;
221
+ },
222
+ {} as ClientHooks<Schema, Options>,
223
+ );
210
224
  }
211
225
 
212
226
  /**
213
227
  * Gets data query hooks for a specific model in the schema.
214
228
  */
215
- export function useModelQueries<Schema extends SchemaDef, Model extends GetModels<Schema>>(
216
- schema: Schema,
217
- model: Model,
218
- ): ModelQueryHooks<Schema, Model> {
229
+ export function useModelQueries<
230
+ Schema extends SchemaDef,
231
+ Model extends GetModels<Schema>,
232
+ Options extends QueryOptions<Schema>,
233
+ >(schema: Schema, model: Model): ModelQueryHooks<Schema, Model, Options> {
219
234
  const modelDef = Object.values(schema.models).find((m) => m.name.toLowerCase() === model.toLowerCase());
220
235
  if (!modelDef) {
221
236
  throw new Error(`Model "${model}" not found in schema`);
@@ -287,7 +302,7 @@ export function useModelQueries<Schema extends SchemaDef, Model extends GetModel
287
302
  useGroupBy: (args: any, options?: any) => {
288
303
  return useInternalQuery(schema, modelName, 'groupBy', args, options);
289
304
  },
290
- } as ModelQueryHooks<Schema, Model>;
305
+ } as ModelQueryHooks<Schema, Model, Options>;
291
306
  }
292
307
 
293
308
  export function useInternalQuery<TQueryFnData, TData>(