UNPKG

@reduxjs/toolkit

Version:

The official, opinionated, batteries-included toolset for efficient Redux development

71 lines (61 loc) 1.87 kB
import type { ThunkDispatch } from '@reduxjs/toolkit' import type { MaybePromise, UnwrapPromise } from './tsHelpers' export interface BaseQueryApi { signal: AbortSignal dispatch: ThunkDispatch<any, any, any> getState: () => unknown extra: unknown } export type QueryReturnValue<T = unknown, E = unknown, M = unknown> = | { error: E data?: undefined meta?: M } | { error?: undefined data: T meta?: M } export type BaseQueryFn< Args = any, Result = unknown, Error = unknown, DefinitionExtraOptions = {}, Meta = {} > = ( args: Args, api: BaseQueryApi, extraOptions: DefinitionExtraOptions ) => MaybePromise<QueryReturnValue<Result, Error, Meta>> export type BaseQueryEnhancer< AdditionalArgs = unknown, AdditionalDefinitionExtraOptions = unknown, Config = void > = <BaseQuery extends BaseQueryFn>( baseQuery: BaseQuery, config: Config ) => BaseQueryFn< BaseQueryArg<BaseQuery> & AdditionalArgs, BaseQueryResult<BaseQuery>, BaseQueryError<BaseQuery>, BaseQueryExtraOptions<BaseQuery> & AdditionalDefinitionExtraOptions > export type BaseQueryResult<BaseQuery extends BaseQueryFn> = UnwrapPromise< ReturnType<BaseQuery> > extends infer Unwrapped ? Unwrapped extends { data: any } ? Unwrapped['data'] : never : never export type BaseQueryMeta<BaseQuery extends BaseQueryFn> = UnwrapPromise< ReturnType<BaseQuery> >['meta'] export type BaseQueryError<BaseQuery extends BaseQueryFn> = Exclude< UnwrapPromise<ReturnType<BaseQuery>>, { error?: undefined } >['error'] export type BaseQueryArg<T extends (arg: any, ...args: any[]) => any> = T extends (arg: infer A, ...args: any[]) => any ? A : any export type BaseQueryExtraOptions<BaseQuery extends BaseQueryFn> = Parameters<BaseQuery>[2]