import { AxiosRequestConfig } from 'axios'; import Context from '../../Context'; import { CacheConfig } from '../Cache'; import { ResponseBody } from '../Response'; /** @description 预制的接口配置项 */ export interface PresetApiConfig { /** @description 接口描述 */ label?: string; /** @description 开启控制台日志,仅在开发模式下生效 */ logger?: boolean; /** @description 开启响应延迟,仅在开发模式下生效 */ delay?: number; /** @description 开启忽略异常 */ errorIgnore?: boolean; /** @description 强制生产也开启mock */ mockForce?: boolean; /** @description 关闭mock */ mockOff?: boolean; /** @description 开启缓存配置,值为true时,则会启用永久缓存,除非刷新页面 */ cache?: boolean | CacheConfig | CacheConfig['expire']; /** @description 设置then的数据类型,默认是业务数据data,fully则返回{header,config,data},这里的data为body, */ resolveType?: 'fully' | 'headers' | 'body' | 'data'; /** @description 查询参数 */ query?: Record; /** @description 请求体 */ data?: any; /** @description 路径参数 */ params?: Record; /** @description 接口地址 */ url: string; /** @description 响应数据标准化处理器,统一转成满足接口{code,data,message,original} */ dataNormalizer?: (ctx: Context) => void; /** @description mock响应头,仅在开发模式下生效 */ mockHeaders?: (ctx: Context) => MockData>; /** @description mock响应数据,仅在开发模式下生效 */ mockData?: (ctx: Context) => MockData; /** @description mockBody数据,仅在开发模式下生效 */ mockBody?: (ctx: Context) => MockData>; /** @description axios请求配置项 */ axios?: AxiosRequestConfig; /** @description 接口请求方式 */ method?: AxiosRequestConfig['method']; /** @description 设置请求头 */ headers?: AxiosRequestConfig['headers']; /** @description 接口超时时间 */ timeout?: AxiosRequestConfig['timeout']; } type MockData = Data | Promise | Promise<{ __esModule: boolean; default: Data; }>; export {};