UNPKG

@iel/axios-ext

Version:

Extend extra functionality for axios.

49 lines (48 loc) 1.93 kB
import { AxiosInstance, AxiosRequestConfig } from 'axios'; import { AxiosExtInstance } from './AxiosExt'; /** * 是否为浅层拷贝实例标志 */ export declare const SHALLOW_INSTANCE_KEY = "$$isShallowInstance"; /** * 事件仓储标志 */ export declare const EVENT_STORE_KEY = "$$AXIOS_EXT_EVENT_STORE"; declare type AxiosRequestFnType = { (...args: Parameters<AxiosInstance>): ReturnType<AxiosInstance>; (...args: Parameters<AxiosInstance['request']>): ReturnType<AxiosInstance>; }; export declare type ShallowAxiosInstance = AxiosInstance & AxiosRequestFnType & { [SHALLOW_INSTANCE_KEY]: boolean; [EVENT_STORE_KEY]: Record<string, any>; }; export declare type ChainShallowAxiosInstance = Partial<ShallowAxiosInstance>; export declare type OmitChainShallowAxiosInstance<T, K> = Omit<T, K extends keyof T ? K : never> & AxiosRequestFnType; export declare type EventStoreType = ShallowAxiosInstance[typeof EVENT_STORE_KEY]; /** * 判断是否为 axios 实例 */ export declare function isAxiosInstance(context: any): context is AxiosInstance; /** * 创建 axios 实例,用于弥补原始 axios 无法自调用触发插件规则 */ export declare function createAxios(config?: AxiosInstance | AxiosRequestConfig): AxiosInstance & { $axiosExt: AxiosExtInstance; }; /** * 创建浅层拷贝实例 */ export declare function createShallowAxiosInstance(axiosExt: AxiosExtInstance, thisArg: ChainShallowAxiosInstance): ShallowAxiosInstance; /** * 获取接口完整路径 */ export declare function getFullPath(instance: AxiosInstance, url: string): string; /** * 根据请求配置项获取标识 */ export declare function getKeyByConfig(instance: AxiosInstance, config?: AxiosRequestConfig): string; /** * 仅挑取请求配置项常用属性 */ export declare function pickConfig(config: AxiosRequestConfig): Pick<AxiosRequestConfig, 'method' | 'url' | 'data' | 'params'>; export {};