@@ -6,26 +6,37 @@ import type {
66 QueryDefinition ,
77} from '@reduxjs/toolkit/query'
88
9+ type QueryHookNames < 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+ type LazyQueryHookNames < Definitions extends EndpointDefinitions > = {
20+ [ K in keyof Definitions as Definitions [ K ] extends {
21+ type : DefinitionType . query
22+ }
23+ ? `useLazy${Capitalize < K & string > } Query`
24+ : never ] : UseLazyQuery <
25+ Extract < Definitions [ K ] , QueryDefinition < any , any , any , any > >
26+ >
27+ }
28+
29+ type MutationHookNames < Definitions extends EndpointDefinitions > = {
30+ [ K in keyof Definitions as Definitions [ K ] extends {
31+ type : DefinitionType . mutation
32+ }
33+ ? `use${Capitalize < K & string > } Mutation`
34+ : never ] : UseMutation <
35+ Extract < Definitions [ K ] , MutationDefinition < any , any , any , any > >
36+ >
37+ }
38+
939export 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
40+ QueryHookNames < Definitions > &
41+ LazyQueryHookNames < Definitions > &
42+ MutationHookNames < Definitions >
0 commit comments