@@ -62,18 +62,19 @@ function generateQueryHook(
62
62
optionalInput : boolean ,
63
63
overrideReturnType ?: string ,
64
64
overrideInputType ?: string ,
65
- overrideTypeParameters ?: string [ ]
65
+ overrideTypeParameters ?: string [ ] ,
66
+ infinite = false
66
67
) {
67
68
const capOperation = upperCaseFirst ( operation ) ;
68
69
69
70
const argsType = overrideInputType ?? `Prisma.${ model } ${ capOperation } Args` ;
70
71
const inputType = `Prisma.SelectSubset<T, ${ argsType } >` ;
71
72
const returnType =
72
73
overrideReturnType ?? ( returnArray ? `Array<Prisma.${ model } GetPayload<T>>` : `Prisma.${ model } GetPayload<T>` ) ;
73
- const optionsType = makeQueryOptions ( target , returnType ) ;
74
+ const optionsType = makeQueryOptions ( target , returnType , infinite ) ;
74
75
75
76
const func = sf . addFunction ( {
76
- name : `use${ capOperation } ${ model } ` ,
77
+ name : `use${ infinite ? 'Infinite' : '' } ${ capOperation } ${ model } ` ,
77
78
typeParameters : overrideTypeParameters ?? [ `T extends ${ argsType } ` ] ,
78
79
parameters : [
79
80
{
@@ -90,7 +91,7 @@ function generateQueryHook(
90
91
91
92
func . addStatements ( [
92
93
makeGetContext ( target ) ,
93
- `return query<${ returnType } >('${ model } ', \`\${endpoint}/${ lowerCaseFirst (
94
+ `return ${ infinite ? 'infiniteQuery' : ' query' } <${ returnType } >('${ model } ', \`\${endpoint}/${ lowerCaseFirst (
94
95
model
95
96
) } /${ operation } \`, args, options, fetch);`,
96
97
] ) ;
@@ -248,7 +249,10 @@ function generateModelHooks(
248
249
249
250
// findMany
250
251
if ( mapping . findMany ) {
252
+ // regular findMany
251
253
generateQueryHook ( target , sf , model . name , 'findMany' , true , true ) ;
254
+ // infinite findMany
255
+ generateQueryHook ( target , sf , model . name , 'findMany' , true , true , undefined , undefined , undefined , true ) ;
252
256
}
253
257
254
258
// findUnique
@@ -431,22 +435,22 @@ function makeGetContext(target: TargetFramework) {
431
435
432
436
function makeBaseImports ( target : TargetFramework ) {
433
437
const shared = [
434
- `import { query, postMutation, putMutation, deleteMutation } from '@zenstackhq/tanstack-query/runtime/${ target } ';` ,
438
+ `import { query, infiniteQuery, postMutation, putMutation, deleteMutation } from '@zenstackhq/tanstack-query/runtime/${ target } ';` ,
435
439
`import type { PickEnumerable, CheckSelect } from '@zenstackhq/tanstack-query/runtime';` ,
436
440
] ;
437
441
switch ( target ) {
438
442
case 'react' :
439
443
return [
440
444
`import { useContext } from 'react';` ,
441
- `import type { UseMutationOptions, UseQueryOptions } from '@tanstack/react-query';` ,
445
+ `import type { UseMutationOptions, UseQueryOptions, UseInfiniteQueryOptions } from '@tanstack/react-query';` ,
442
446
`import { RequestHandlerContext } from '@zenstackhq/tanstack-query/runtime/${ target } ';` ,
443
447
...shared ,
444
448
] ;
445
449
case 'svelte' :
446
450
return [
447
451
`import { getContext } from 'svelte';` ,
448
452
`import { derived } from 'svelte/store';` ,
449
- `import type { MutationOptions, QueryOptions } from '@tanstack/svelte-query';` ,
453
+ `import type { MutationOptions, QueryOptions, CreateInfiniteQueryOptions } from '@tanstack/svelte-query';` ,
450
454
`import { SvelteQueryContextKey, type RequestHandlerContext } from '@zenstackhq/tanstack-query/runtime/${ target } ';` ,
451
455
...shared ,
452
456
] ;
@@ -455,12 +459,12 @@ function makeBaseImports(target: TargetFramework) {
455
459
}
456
460
}
457
461
458
- function makeQueryOptions ( target : string , returnType : string ) {
462
+ function makeQueryOptions ( target : string , returnType : string , infinite : boolean ) {
459
463
switch ( target ) {
460
464
case 'react' :
461
- return `UseQueryOptions <${ returnType } >` ;
465
+ return `Use ${ infinite ? 'Infinite' : '' } QueryOptions <${ returnType } >` ;
462
466
case 'svelte' :
463
- return `QueryOptions<${ returnType } >` ;
467
+ return `${ infinite ? 'CreateInfinite' : '' } QueryOptions<${ returnType } >` ;
464
468
default :
465
469
throw new PluginError ( name , `Unsupported target: ${ target } ` ) ;
466
470
}
0 commit comments