Skip to content

Commit 0ca5e6b

Browse files
committed
Declare types for autogenerated infinite query hooks (#4797)
1 parent 118a342 commit 0ca5e6b

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

packages/toolkit/src/query/react/namedHooks.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,14 @@ import type {
33
EndpointDefinitions,
44
MutationDefinition,
55
QueryDefinition,
6+
InfiniteQueryDefinition,
67
} from '@reduxjs/toolkit/query'
7-
import type { UseLazyQuery, UseMutation, UseQuery } from './buildHooks'
8+
import type {
9+
UseInfiniteQuery,
10+
UseLazyQuery,
11+
UseMutation,
12+
UseQuery,
13+
} from './buildHooks'
814

915
type QueryHookNames<Definitions extends EndpointDefinitions> = {
1016
[K in keyof Definitions as Definitions[K] extends {
@@ -26,6 +32,16 @@ type LazyQueryHookNames<Definitions extends EndpointDefinitions> = {
2632
>
2733
}
2834

35+
type InfiniteQueryHookNames<Definitions extends EndpointDefinitions> = {
36+
[K in keyof Definitions as Definitions[K] extends {
37+
type: DefinitionType.infinitequery
38+
}
39+
? `use${Capitalize<K & string>}InfiniteQuery`
40+
: never]: UseInfiniteQuery<
41+
Extract<Definitions[K], InfiniteQueryDefinition<any, any, any, any, any>>
42+
>
43+
}
44+
2945
type MutationHookNames<Definitions extends EndpointDefinitions> = {
3046
[K in keyof Definitions as Definitions[K] extends {
3147
type: DefinitionType.mutation
@@ -39,4 +55,5 @@ type MutationHookNames<Definitions extends EndpointDefinitions> = {
3955
export type HooksWithUniqueNames<Definitions extends EndpointDefinitions> =
4056
QueryHookNames<Definitions> &
4157
LazyQueryHookNames<Definitions> &
58+
InfiniteQueryHookNames<Definitions> &
4259
MutationHookNames<Definitions>

packages/toolkit/src/query/tests/buildHooks.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1764,7 +1764,7 @@ describe('hooks tests', () => {
17641764
isUninitialized,
17651765
fetchNextPage,
17661766
fetchPreviousPage,
1767-
} = api.endpoints.getInfinitePokemon.useInfiniteQuery(arg, {
1767+
} = api.useGetInfinitePokemonInfiniteQuery(arg, {
17681768
initialPageParam,
17691769
})
17701770

packages/toolkit/src/query/tests/infiniteQueries.test-d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ describe('Infinite queries', () => {
5353
.parameter(0)
5454
.toBeString()
5555

56+
expectTypeOf(pokemonApi.useGetInfinitePokemonInfiniteQuery).toBeFunction()
57+
5658
const res = storeRef.store.dispatch(
5759
pokemonApi.endpoints.getInfinitePokemon.initiate('fire', {}),
5860
)

0 commit comments

Comments
 (0)