UNPKG

vue-redux-hooks

Version:
45 lines (44 loc) 2.65 kB
import type { EndpointDefinition, EndpointDefinitions, MutationDefinition, QueryDefinition } from '@reduxjs/toolkit/dist/query/endpointDefinitions'; import { BaseQueryFn } from '@reduxjs/toolkit/query'; import { UseMutation } from './useMutation'; import { UseQuery } from './useQuery'; import { UseQueryState } from './useQueryState'; import { UseQuerySubscription } from './useQuerySubscription'; export declare enum DefinitionType { query = "query", mutation = "mutation" } export declare function isQueryDefinition(e: EndpointDefinition<any, any, any, any>): e is QueryDefinition<any, any, any, any>; export declare function isMutationDefinition(e: EndpointDefinition<any, any, any, any>): e is MutationDefinition<any, any, any, any>; declare const vueHooksModuleName: unique symbol; declare type QueryHooks<D extends QueryDefinition<any, any, any, any, any>> = { useQuery: UseQuery<D>; useQuerySubscription: UseQuerySubscription<D>; useQueryState: UseQueryState<D>; }; declare type MutationHooks<D extends MutationDefinition<any, any, any, any, any>> = { useMutation: UseMutation<D>; }; export declare type HooksWithUniqueNames<Definitions extends EndpointDefinitions> = keyof Definitions extends infer Keys ? Keys extends string ? Definitions[Keys] extends { type: DefinitionType.query; } ? { [K in Keys as `use${Capitalize<K>}Query`]: UseQuery<Extract<Definitions[K], QueryDefinition<any, any, any, any>>>; } : Definitions[Keys] extends { type: DefinitionType.mutation; } ? { [K in Keys as `use${Capitalize<K>}Mutation`]: UseMutation<Extract<Definitions[K], MutationDefinition<any, any, any, any>>>; } : never : never : never; declare module '@reduxjs/toolkit/dist/query/apiTypes' { interface ApiModules<BaseQuery extends BaseQueryFn, Definitions extends EndpointDefinitions, ReducerPath extends string, TagTypes extends string> { [vueHooksModuleName]: { /** * Endpoints based on the input endpoints provided to `createApi`, containing `select`, `hooks` and `action matchers`. */ endpoints: { [K in keyof Definitions]: Definitions[K] extends QueryDefinition<any, any, any, any, any> ? QueryHooks<Definitions[K]> : Definitions[K] extends MutationDefinition<any, any, any, any, any> ? MutationHooks<Definitions[K]> : never; }; } & HooksWithUniqueNames<Definitions>; } } export declare const createApi: import("@reduxjs/toolkit/dist/query").CreateApi<typeof import("@reduxjs/toolkit/dist/query/core/module").coreModuleName | typeof vueHooksModuleName>; export {};