4
4
type Api ,
5
5
type BaseQueryFn ,
6
6
type EndpointDefinitions ,
7
+ type InfiniteQueryDefinition ,
7
8
type Module ,
8
9
type MutationDefinition ,
9
10
type PrefetchOptions ,
@@ -15,8 +16,10 @@ import {
15
16
import { buildHooks } from './build-hooks' ;
16
17
import {
17
18
type HooksWithUniqueNames ,
19
+ type InfiniteQueryHooks ,
18
20
type MutationHooks ,
19
21
type QueryHooks ,
22
+ isInfiniteQueryDefinition ,
20
23
isMutationDefinition ,
21
24
isQueryDefinition ,
22
25
} from './types' ;
@@ -50,7 +53,9 @@ declare module '@reduxjs/toolkit/query' {
50
53
? QueryHooks < Definitions [ K ] >
51
54
: Definitions [ K ] extends MutationDefinition < any , any , any , any , any >
52
55
? MutationHooks < Definitions [ K ] >
53
- : never ;
56
+ : Definitions [ K ] extends InfiniteQueryDefinition < any , any , any , any , any >
57
+ ? InfiniteQueryHooks < Definitions [ K ] >
58
+ : never ;
54
59
} ;
55
60
/**
56
61
* A hook that accepts a string endpoint name, and provides a callback that when called,
@@ -126,7 +131,7 @@ export const angularHooksModule = ({
126
131
name : angularHooksModuleName ,
127
132
init ( api , { serializeQueryArgs } , context ) {
128
133
const anyApi = api as any as Api < any , Record < string , any > , any , any , AngularHooksModule > ;
129
- const { buildQueryHooks, buildMutationHook, usePrefetch } = buildHooks ( {
134
+ const { buildQueryHooks, buildInfiniteQueryHooks , buildMutationHook, usePrefetch } = buildHooks ( {
130
135
api,
131
136
moduleOptions : { hooks, createSelector, getInjector } ,
132
137
serializeQueryArgs,
@@ -151,10 +156,20 @@ export const angularHooksModule = ({
151
156
} ) ;
152
157
( api as any ) [ `use${ capitalize ( endpointName ) } Query` ] = useQuery ;
153
158
( api as any ) [ `useLazy${ capitalize ( endpointName ) } Query` ] = useLazyQuery ;
154
- } else if ( isMutationDefinition ( definition ) ) {
159
+ }
160
+ if ( isMutationDefinition ( definition ) ) {
155
161
const { useMutation } = buildMutationHook ( endpointName ) ;
156
162
safeAssign ( anyApi . endpoints [ endpointName ] , { useMutation } ) ;
157
163
( api as any ) [ `use${ capitalize ( endpointName ) } Mutation` ] = useMutation ;
164
+ } else if ( isInfiniteQueryDefinition ( definition ) ) {
165
+ const { useInfiniteQuery, useInfiniteQuerySubscription, useInfiniteQueryState } =
166
+ buildInfiniteQueryHooks ( endpointName ) ;
167
+ safeAssign ( anyApi . endpoints [ endpointName ] , {
168
+ useInfiniteQuery,
169
+ useInfiniteQuerySubscription,
170
+ useInfiniteQueryState,
171
+ } ) ;
172
+ ( api as any ) [ `use${ capitalize ( endpointName ) } InfiniteQuery` ] = useInfiniteQuery ;
158
173
}
159
174
} ,
160
175
} ;
0 commit comments