Skip to content

Commit eb55056

Browse files
author
ben.durrant
committedOct 2, 2023
Rework named hooks type (v1.9)
1 parent c5067bf commit eb55056

File tree

1 file changed

+27
-23
lines changed

1 file changed

+27
-23
lines changed
 

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

+27-23
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,30 @@ import type {
66
QueryDefinition,
77
} from '@reduxjs/toolkit/query'
88

9-
export type HooksWithUniqueNames<Definitions extends EndpointDefinitions> =
10-
keyof Definitions extends infer Keys
11-
? Keys extends string
12-
? Definitions[Keys] extends { type: DefinitionType.query }
13-
? {
14-
[K in Keys as `use${Capitalize<K>}Query`]: UseQuery<
15-
Extract<Definitions[K], QueryDefinition<any, any, any, any>>
16-
>
17-
} &
18-
{
19-
[K in Keys as `useLazy${Capitalize<K>}Query`]: UseLazyQuery<
20-
Extract<Definitions[K], QueryDefinition<any, any, any, any>>
21-
>
22-
}
23-
: Definitions[Keys] extends { type: DefinitionType.mutation }
24-
? {
25-
[K in Keys as `use${Capitalize<K>}Mutation`]: UseMutation<
26-
Extract<Definitions[K], MutationDefinition<any, any, any, any>>
27-
>
28-
}
29-
: never
30-
: never
31-
: never
9+
export type HooksWithUniqueNames<Definitions extends EndpointDefinitions> = {
10+
[K in keyof Definitions as Definitions[K] extends {
11+
type: DefinitionType.query
12+
}
13+
? `use${Capitalize<K & string>}Query`
14+
: never]: UseQuery<
15+
Extract<Definitions[K], QueryDefinition<any, any, any, any>>
16+
>
17+
} &
18+
{
19+
[K in keyof Definitions as Definitions[K] extends {
20+
type: DefinitionType.query
21+
}
22+
? `useLazy${Capitalize<K & string>}Query`
23+
: never]: UseLazyQuery<
24+
Extract<Definitions[K], QueryDefinition<any, any, any, any>>
25+
>
26+
} &
27+
{
28+
[K in keyof Definitions as Definitions[K] extends {
29+
type: DefinitionType.mutation
30+
}
31+
? `use${Capitalize<K & string>}Mutation`
32+
: never]: UseMutation<
33+
Extract<Definitions[K], MutationDefinition<any, any, any, any>>
34+
>
35+
}

0 commit comments

Comments
 (0)
Please sign in to comment.