import { AxiosRequestConfig } from 'axios'; import { ILoadingFactory } from './ILoadingFactory'; import { ILogger } from './ILogger'; import { TOnly } from './IOnly'; import { TResponseData } from './TResponseData'; export interface IRequestOptions extends AxiosRequestConfig { /** 请求防抖 - 唯一请求, 默认: 'merge', 可通过 设置 false 关闭. * @param {'merge'| 'skip' | 'error'} type 防抖方式 * - merge | 合并重复请求 * - skip | 出现重复请求时, 忽略 * - error | 出现重复请求时, 抛出异常 * @param {number} delay 请求时延, 通过延时函数, 将在一定时间段内发起的请求进行合并, 对节约请求资源很有帮助 * @param {Function} checker 自定义重复请求检查方法 */ only?: TOnly; /** 并发请求数限制, 默认: 不限制 */ max?: number; /** 是否启用 url 格式校验, 默认: true */ urlFormat?: boolean; /** 自定义日志工具 */ logger?: ILogger; /** 启用mock能力, 需要依赖 `request.use(mock())` * @description | * - 作为全局配置时, 启用全局mock能力 * - 作为请求参数时, 启用局部mock能力 */ mock?: boolean; /** 请求loading */ loading?: ILoadingFactory; /** 自定义提示文案 */ loadingContext?: string | { message: string; noDelay?: boolean; }; /** 响应数据格式 * @param {'data'| 'origin'} responseData 防抖方式 * - data | 返回 res.data * - origin | 返回 res */ responseData?: TResponseData; }