Files
NapCatQQ/.pnpm-store/v3/files/af/eb36e0c3e0609b1a068555b0903b94b150e4b907ad104d461e08e603a90642de8bc1471e69c636e1d88e7eed093cc26cd8a23388ef5fe967263f8458a46999
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

60 lines
1.7 KiB
Plaintext

import type {
DefinitionType,
EndpointDefinitions,
MutationDefinition,
QueryDefinition,
InfiniteQueryDefinition,
} from '@reduxjs/toolkit/query'
import type {
UseInfiniteQuery,
UseLazyQuery,
UseMutation,
UseQuery,
} from './buildHooks'
type QueryHookNames<Definitions extends EndpointDefinitions> = {
[K in keyof Definitions as Definitions[K] extends {
type: DefinitionType.query
}
? `use${Capitalize<K & string>}Query`
: never]: UseQuery<
Extract<Definitions[K], QueryDefinition<any, any, any, any>>
>
}
type LazyQueryHookNames<Definitions extends EndpointDefinitions> = {
[K in keyof Definitions as Definitions[K] extends {
type: DefinitionType.query
}
? `useLazy${Capitalize<K & string>}Query`
: never]: UseLazyQuery<
Extract<Definitions[K], QueryDefinition<any, any, any, any>>
>
}
type InfiniteQueryHookNames<Definitions extends EndpointDefinitions> = {
[K in keyof Definitions as Definitions[K] extends {
type: DefinitionType.infinitequery
}
? `use${Capitalize<K & string>}InfiniteQuery`
: never]: UseInfiniteQuery<
Extract<Definitions[K], InfiniteQueryDefinition<any, any, any, any, any>>
>
}
type MutationHookNames<Definitions extends EndpointDefinitions> = {
[K in keyof Definitions as Definitions[K] extends {
type: DefinitionType.mutation
}
? `use${Capitalize<K & string>}Mutation`
: never]: UseMutation<
Extract<Definitions[K], MutationDefinition<any, any, any, any>>
>
}
export type HooksWithUniqueNames<Definitions extends EndpointDefinitions> =
QueryHookNames<Definitions> &
LazyQueryHookNames<Definitions> &
InfiniteQueryHookNames<Definitions> &
MutationHookNames<Definitions>