import { AxiosInstance } from "axios"; //#region src/default-response-interceptor/index.d.ts type ResponseReturn = "body" | "data" | "raw"; declare module "axios" { interface AxiosRequestConfig { /** * 响应数据的返回方式。 * - raw: 原始的 AxiosResponse,包括 headers、status 等,不做是否成功请求的检查。(返回 `axiosRes`) * - body: 返回响应数据的 body 部分。(返回 `axiosRes.data` ) * - data: 解构响应的 body 数据,只返回其中的 dataField 节点数据。(返回 `axiosRes.data.list`) * @default 'body' * * **axiosRes 是 axios 的默认响应对象** * ```ts * const axiosRes = { // `data` 由服务器提供的响应 data: { code: 0, list: [], errorMessage: '', }, // `status` 来自服务器响应的 HTTP 状态码 status: 200,, // `headers` 是服务器响应头 headers: {}, ... } * ``` */ responseReturn?: ResponseReturn; } } type DefaultResponseInterceptorOptions = { /** 响应数据中代表访问结果的字段名 * @default 'code' */ codeField: string; /** 响应数据中装载实际数据的字段名,或者提供一个函数从响应数据中解析需要返回的数据 * @default 'data' */ dataField: ((response: any) => any) | string; /** 当 codeField 所指定的字段值与 successCode 相同时,代表接口访问成功。如果提供一个函数,则返回 true 代表接口访问成功 * @default 0 */ successCode: ((code: any) => boolean) | number | string; /** 是否在接口访问失败时(业务报错)抛出错误。 如 codeField 所指定的字段值与 successCode 不相同时,抛出错误 * * 设置为 `true` 后,业务错误将进入 `catch` 块。 * @default true */ isThrowWhenFail?: boolean; }; /** * 返回结构-响应拦截器 * @param options.codeField - 响应数据中代表访问结果的字段名, 默认值为 'code' * @param options.dataField - 响应数据中装载实际数据的字段名,或者提供一个函数从响应数据中解析需要返回的数据, 默认值为 'data' * @param options.successCode - 当 codeField 所指定的字段值与 successCode 相同时,代表接口访问成功。如果提供一个函数,则返回 true 代表接口访问成功, 默认值为 0 * @param options.isThrowWhenFail - 是否在接口访问失败时(业务报错)抛出错误。 如 codeField 所指定的字段值与 successCode 不相同时,抛出错误, 默认值为 true * @returns 拦截器 ID, 用于移除拦截器 * * 如果后端返回的数据结构如下:那么 codeField 为 'resultCode',dataField 为 'data',successCode 为 'SUCCESS' * ```ts * type Response = { * // 结果码 * resultCode: 'FAIL' | 'SUCCESS'; * // 数据 * data: T; * // 错误码 * errorCode?: string; * // 错误描述, resultCode 为 FAIL 时才有 * errorCodeDes?: string; * }; * ``` */ declare const createDefaultResponseInterceptor: (axiosInstance: AxiosInstance, { codeField, dataField, successCode, isThrowWhenFail }: DefaultResponseInterceptorOptions) => number; //#endregion export { DefaultResponseInterceptorOptions, ResponseReturn, createDefaultResponseInterceptor as createDefaultResponseInterceptor$1 }; //# sourceMappingURL=index-CpR12eB2.d.ts.map