11/* eslint-disable @typescript-eslint/no-unused-vars */
2- import { useQuery, type UseQueryOptions, useInfiniteQuery, type UseInfiniteQueryOptions } from "@tanstack/{ {- .FrontendType -} }-query";
2+ import { useQuery, type UseQueryOptions, useInfiniteQuery, type UseInfiniteQueryOptions, type InfiniteData } from "@tanstack/{ {- .FrontendType -} }-query";
33import { useClient } from '../useClient';
44
55export default function use{ { camelCaseUpperSta $.Module.Pkg.Name } }() {
@@ -14,6 +14,8 @@ export default function use{{ camelCaseUpperSta $.Module.Pkg.Name }}() {
1414 { {- if (gt $i 0) -} }
1515 { {- $n = inc $i -} }
1616 { {- end } }
17+ type { { $FullName } }{ { $n } }Method = typeof client.{ { camelCaseUpperSta $.Module.Pkg.Name } }.query.{ { camelCase $FullName -} };
18+ type { { $FullName } }{ { $n } }Data = Awaited<ReturnType <{ { $FullName } } { { $n } } Method >>["data"];
1719 const { { $FullName } }{ { $n } } = (
1820 { {- if $rule .Params -} }
1921 { {- range $j ,$a :=$rule .Params -} }
@@ -22,15 +24,16 @@ export default function use{{ camelCaseUpperSta $.Module.Pkg.Name }}() {
2224 { {- end -} }
2325 , { { end -} }
2426 { {- if $rule .HasQuery -} }
25- query: any ,
26- { {- end } } options: any , perPage: number) => {
27+ query: NonNullable< Parameters < { { $ FullName } } { { $ n } } Method >[ { {- len $ rule .Params - } }]> ,
28+ { {- end } } options: Partial< UseInfiniteQueryOptions < { { $ FullName } } { { $ n } } Data, unknown, InfiniteData < { { $ FullName } } { { $ n } } Data,number >, Array< string | unknown >, number>> , perPage: number) => {
2729 const key = { type: ' {{ $FullName }}{{ $n }}' , {{ range $j ,$a :=$rule .Params -} }
2830 { {- if (gt $j 0) -} }, { { end } } { { $a -} }
2931 { {- end -} } { {- if $rule .HasQuery -} }
3032 { {- if $rule .Params -} }, { { end -} }
3133 query
3234 { {- end } } };
33- return useInfiniteQuery([key], ({ pageParam = 1} : { pageParam?: number} ) => {
35+ return useInfiniteQuery<{ { $FullName } }{ { $n } }Data, unknown, InfiniteData<{ { $FullName } }{ { $n } }Data,number>, Array<string | unknown >, number>({ queryKey: [key], queryFn: async (context: {pageParam?: number} ) => {
36+ const { pageParam= 1 } = context;
3437 { {- if or $rule .HasQuery $rule .Params} }
3538 const { {{- if $rule .Params -} }{ {- range $j ,$a :=$rule .Params -} }
3639 { {- if (gt $j 0) -} }, { { end } } { { $a -} }
@@ -39,7 +42,7 @@ export default function use{{ camelCaseUpperSta $.Module.Pkg.Name }}() {
3942 query['pagination.limit']=perPage;
4043 query['pagination.offset']= (pageParam-1)*perPage;
4144 query['pagination.count_total']= true;
42- return client.{ { camelCaseUpperSta $.Module.Pkg.Name } }.query.{ { camelCase $FullName -} }
45+ const res = await client.{ { camelCaseUpperSta $.Module.Pkg.Name } }.query.{ { camelCase $FullName -} }
4346 { {- $n -} }({ {- range $j ,$a :=$rule .Params -} }
4447 { {- if (gt $j 0) -} }, { { end } } { {- $a -} }
4548 { {- end -} }
@@ -51,8 +54,10 @@ export default function use{{ camelCaseUpperSta $.Module.Pkg.Name }}() {
5154 { {- if or $rule .HasQuery $rule .Params} },{ { end -} }
5255 { ...key}
5356 { {- end -} }
54- ).then( res => ({ ...res.data,pageParam} ) );
55- }, { ...options,
57+ );
58+ return res.data;
59+ }, ...options,
60+ initialPageParam: 1,
5661 getNextPageParam: (lastPage, allPages) => { if ((lastPage.pagination?.total ?? 0) > ((lastPage.pageParam ?? 0) * perPage)) {return lastPage.pageParam+1 } else { return undefined} },
5762 getPreviousPageParam: (firstPage, allPages) => { if (firstPage.pageParam= =1) { return undefined } else { return firstPage.pageParam-1} }
5863 }
@@ -65,6 +70,9 @@ export default function use{{ camelCaseUpperSta $.Module.Pkg.Name }}() {
6570 { {- if (gt $i 0) -} }
6671 { {- $n = inc $i -} }
6772 { {- end } }
73+
74+ type { { $FullName } }{ { $n } }Method = typeof client.{ { camelCaseUpperSta $.Module.Pkg.Name } }.query.{ { camelCase $FullName -} };
75+ type { { $FullName } }{ { $n } }Data = Awaited<ReturnType <{ { $FullName } } { { $n } } Method >>["data"];
6876 const { { $FullName } }{ { $n } } = (
6977 { {- if $rule .Params -} }
7078 { {- range $j ,$a :=$rule .Params -} }
@@ -73,20 +81,20 @@ export default function use{{ camelCaseUpperSta $.Module.Pkg.Name }}() {
7381 { {- end -} }
7482 , { { end -} }
7583 { {- if $rule .HasQuery -} }
76- query: any ,
77- { {- end } } options: any ) => {
84+ query: NonNullable< Parameters < { { $ FullName } } { { $ n } } Method >[ { {- len $ rule .Params - } }]> ,
85+ { {- end } } options: Partial< UseQueryOptions < { { $ FullName } } { { $ n } } Data >> ) => {
7886 const key = { type: ' {{ $FullName }}{{ $n }}' , {{ range $j ,$a :=$rule .Params -} }
7987 { {- if (gt $j 0) -} }, { { end } } { { $a -} }
8088 { {- end -} } { {- if $rule .HasQuery -} }
8189 { {- if $rule .Params -} }, { { end -} }
8290 query
8391 { {- end } } };
84- return useQuery( [key], () => {
92+ return useQuery< { { $ FullName } } { { $ n } }Data>( { queryKey: [key], queryFn: async () => {
8593 {{- if or $rule .HasQuery $rule .Params} }
8694 const { {{- if $rule .Params -} }{ {- range $j ,$a :=$rule .Params -} }
8795 { {- if (gt $j 0) -} }, { { end } } { { $a -} }
8896 { {- end -} }{ {- if $rule .HasQuery -} }, { {- end -} }{ {- end -} }{ {- if $rule .HasQuery -} }query{ {- end } } } = key{ { end } }
89- return client.{ { camelCaseUpperSta $.Module.Pkg.Name } }.query.{ { camelCase $FullName -} }
97+ const res = await client.{ { camelCaseUpperSta $.Module.Pkg.Name } }.query.{ { camelCase $FullName -} }
9098 { {- $n -} }({ {- range $j ,$a :=$rule .Params -} }
9199 { {- if (gt $j 0) -} }, { { end } } { {- $a -} }
92100 { {- end -} }
@@ -98,8 +106,9 @@ export default function use{{ camelCaseUpperSta $.Module.Pkg.Name }}() {
98106 { {- if or $rule .HasQuery $rule .Params} },{ { end -} }
99107 { ...key}
100108 { {- end -} }
101- ).then( res => res.data );
102- }, options);
109+ );
110+ return res.data;
111+ }, ...options});
103112 }
104113 { { end -} }
105114 { {- end -} }
0 commit comments