import { IPlugin } from '../../intf/IPlugin' import { AxiosInstance, AxiosResponse } from 'axios' import { ITransformResponse } from '../../intf/ITransformResponse' /** 响应处理 * @description 由于暂时想不到一个好的办法, 输出一个通用的 响应状态判断方式, 所以, 这里将原始API封装成一个默认的预设后, 直接供大家使用 */ export const transformResponse = (handler: ITransformResponse): IPlugin => { return { pluginName: 'transform-response', handler: (axios: AxiosInstance) => { axios.interceptors.response.use(async (res: AxiosResponse) => { const { status, data } = res let { code } = res.data ?? {} if (typeof code === 'string' && !isNaN(code as any)) code = Number(code) await handler(status, code, data, res) return res }) } } }