import { IPlugin } from '../../intf/IPlugin' import { AxiosInstance } from 'axios' import { IRequestOptions } from '../../intf/IRequestOptions' import { ITransformRequest } from '../../intf/ITransformRequest' /** 提供请求前置转换能力 */ export const transformRequest = (handler: ITransformRequest): IPlugin => { return { pluginName: 'transform-request', handler: (axios: AxiosInstance) => { axios.interceptors.request.use(async (req: IRequestOptions) => { const transformed: IRequestOptions = (await handler(req)) as IRequestOptions if (transformed === undefined) return req return transformed }) } } }