namedHooks.d.ts 1.3 KB

12345678910111213141516171819
  1. import type { UseMutation, UseLazyQuery, UseQuery } from './buildHooks';
  2. import type { DefinitionType, EndpointDefinitions, MutationDefinition, QueryDefinition } from '@reduxjs/toolkit/query';
  3. declare type QueryHookNames<Definitions extends EndpointDefinitions> = {
  4. [K in keyof Definitions as Definitions[K] extends {
  5. type: DefinitionType.query;
  6. } ? `use${Capitalize<K & string>}Query` : never]: UseQuery<Extract<Definitions[K], QueryDefinition<any, any, any, any>>>;
  7. };
  8. declare type LazyQueryHookNames<Definitions extends EndpointDefinitions> = {
  9. [K in keyof Definitions as Definitions[K] extends {
  10. type: DefinitionType.query;
  11. } ? `useLazy${Capitalize<K & string>}Query` : never]: UseLazyQuery<Extract<Definitions[K], QueryDefinition<any, any, any, any>>>;
  12. };
  13. declare type MutationHookNames<Definitions extends EndpointDefinitions> = {
  14. [K in keyof Definitions as Definitions[K] extends {
  15. type: DefinitionType.mutation;
  16. } ? `use${Capitalize<K & string>}Mutation` : never]: UseMutation<Extract<Definitions[K], MutationDefinition<any, any, any, any>>>;
  17. };
  18. export declare type HooksWithUniqueNames<Definitions extends EndpointDefinitions> = QueryHookNames<Definitions> & LazyQueryHookNames<Definitions> & MutationHookNames<Definitions>;
  19. export {};