import { IPlugin } from '../../intf/IPlugin' import { AxiosInstance, AxiosRequestConfig } from 'axios' import { IData } from '../../intf/IData' const filter = (data: IData, filterEmptyString?: boolean) => { for (const key in data) { if (data[key] === null || data[key] === undefined) { delete data[key] } if (filterEmptyString && data[key] === '') { delete data[key] } } } /** 过滤空参数 * @param {boolean} filterEmptyString 是否过滤空字符串 */ export const filterNullValue = (filterEmptyString?: boolean): IPlugin => { return { pluginName: 'filter-null-value', handler: (axios: AxiosInstance) => { axios.interceptors.request.use((req: AxiosRequestConfig) => { if (typeof req.data === 'object') { filter(req.data, filterEmptyString) } if (req.params === 'object') { filter(req.params, filterEmptyString) } return req }) } } }