UNPKG

alloy-request

Version:

alloy-request 基于`axios`和`ahooks的useRequest`封装的 react 请求库

27 lines (26 loc) 1.62 kB
import { AxiosRequestConfig } from 'axios'; import { Options, Result } from 'ahooks/lib/useRequest/src/types'; import { PaginatedParams, PaginatedOptionsWithFormat, BasePaginatedOptions, PaginatedResult } from './types'; export interface ApiResponseError<T> { code: number; message: string; config: AxiosRequestConfig; data: T; } type TypeCombineOptions<O, P> = Omit<O, 'onError'> & { onError?: (err: ApiResponseError<Record<string, any>>, params: P) => void; /** * 是否自动生成 cacheKey 缓存接口 */ autoCache?: boolean; }; type TypeCombineResults<R> = Omit<R, 'error'> & { error: ApiResponseError<Record<string, any>>; }; declare function useAxios<T, P extends any[] = any, U = any, UU extends U = any>(url: T, service?: Record<string, any> | Array<any>, options?: TypeCombineOptions<Options<UU, P>, P> & { formatResult: (res: any) => U; }): TypeCombineResults<Result<U, P>>; declare function useAxios<T, P extends any[] = any>(url: T, service?: Record<string, any> | Array<any>, options?: TypeCombineOptions<Options<any, P>, P>): TypeCombineResults<Result<any, P>>; declare function useAxios<T, Item = any, U extends Item = any>(url: T, service: Record<string, any> | Array<any>, options: TypeCombineOptions<PaginatedOptionsWithFormat<any, Item, U>, PaginatedParams>): TypeCombineResults<PaginatedResult<Item>>; declare function useAxios<T, Item = any, U extends Item = any>(url: T, service: Record<string, any> | Array<any>, options: TypeCombineOptions<BasePaginatedOptions<U>, PaginatedParams>): TypeCombineResults<PaginatedResult<Item>>; export { useAxios };