@@ -24,7 +24,6 @@ import type {
2424 AggregateArgs ,
2525 AggregateResult ,
2626 BatchResult ,
27- ClientOptions ,
2827 CountArgs ,
2928 CountResult ,
3029 CreateArgs ,
@@ -37,8 +36,10 @@ import type {
3736 FindUniqueArgs ,
3837 GroupByArgs ,
3938 GroupByResult ,
39+ QueryOptions ,
4040 SelectSubset ,
41- SimplifiedModelResult ,
41+ SimplifiedPlainResult ,
42+ SimplifiedResult ,
4243 Subset ,
4344 UpdateArgs ,
4445 UpdateManyAndReturnArgs ,
@@ -129,101 +130,99 @@ export type ModelMutationModelResult<
129130 Model extends GetModels < Schema > ,
130131 TArgs ,
131132 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' > & {
136135 mutateAsync < T extends TArgs > (
137136 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 > > ;
140139} ;
141140
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 > ;
144143} ;
145144
146145// Note that we can potentially use TypeScript's mapped type to directly map from ORM contract, but that seems
147146// 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 <
149152 Schema ,
150153 Model ,
151154 {
152155 useFindUnique < T extends FindUniqueArgs < Schema , Model > > (
153156 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 > ;
156159
157160 useSuspenseFindUnique < T extends FindUniqueArgs < Schema , Model > > (
158161 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 > ;
161164
162165 useFindFirst < T extends FindFirstArgs < Schema , Model > > (
163166 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 > ;
166169
167170 useSuspenseFindFirst < T extends FindFirstArgs < Schema , Model > > (
168171 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 > ;
171174
172175 useFindMany < T extends FindManyArgs < Schema , Model > > (
173176 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 > [ ] > ;
176179
177180 useSuspenseFindMany < T extends FindManyArgs < Schema , Model > > (
178181 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 > [ ] > ;
181184
182185 useInfiniteFindMany < T extends FindManyArgs < Schema , Model > > (
183186 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 > [ ] > > ;
186189
187190 useSuspenseInfiniteFindMany < T extends FindManyArgs < Schema , Model > > (
188191 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 > [ ] > > ;
195194
196195 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 > ;
199198
200199 useCreateMany < T extends CreateManyArgs < Schema , Model > > (
201200 options ?: ModelMutationOptions < BatchResult , T > ,
202201 ) : ModelMutationResult < BatchResult , T > ;
203202
204203 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 > ;
207206
208207 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 > ;
211210
212211 useUpdateMany < T extends UpdateManyArgs < Schema , Model > > (
213212 options ?: ModelMutationOptions < BatchResult , T > ,
214213 ) : ModelMutationResult < BatchResult , T > ;
215214
216215 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 > ;
219218
220219 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 > ;
223222
224223 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 > ;
227226
228227 useDeleteMany < T extends DeleteManyArgs < Schema , Model > > (
229228 options ?: ModelMutationOptions < BatchResult , T > ,
@@ -264,20 +263,29 @@ export type ModelQueryHooks<Schema extends SchemaDef, Model extends GetModels<Sc
264263/**
265264 * Gets data query hooks for all models in the schema.
266265 */
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+ ) ;
272279}
273280
274281/**
275282 * Gets data query hooks for a specific model in the schema.
276283 */
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 > {
281289 const modelDef = Object . values ( schema . models ) . find ( ( m ) => m . name . toLowerCase ( ) === model . toLowerCase ( ) ) ;
282290 if ( ! modelDef ) {
283291 throw new Error ( `Model "${ model } " not found in schema` ) ;
@@ -377,7 +385,7 @@ export function useModelQueries<Schema extends SchemaDef, Model extends GetModel
377385 useSuspenseGroupBy : ( args : any , options ?: any ) => {
378386 return useInternalSuspenseQuery ( schema , modelName , 'groupBy' , args , options ) ;
379387 } ,
380- } as ModelQueryHooks < Schema , Model > ;
388+ } as ModelQueryHooks < Schema , Model , Options > ;
381389}
382390
383391export function useInternalQuery < TQueryFnData , TData > (
0 commit comments