import { NormalizeRequestPayloadOptions, normalizeRequestPayload$1 as normalizeRequestPayload } from "./normalizeRequestPayload-CP7zjde9.js"; import { saveAs } from "file-saver"; import { AxiosResponse } from "axios"; //#region src/utils/getFilenameFromContentDisposition.d.ts /** * 从 content-disposition 中获取文件名, 支持 filename*=(RFC-5987) 和 filename= 格式 * @param contentDisposition content-disposition * @returns 文件名 */ declare function getFilenameFromContentDisposition(contentDisposition: string): string | null; //#endregion //#region src/utils/processFileStream.d.ts type Options = { /** 自定义文件名, 不使用 content-disposition 中的文件名 */ fileName?: string; /** 自定义错误信息字段 * @default 'errorCodeDes * 如果你后端的返回数据结构如下:那么 errorMessageField 为 'errorCodeDes' * ```ts * type Response = { * // 结果码 * resultCode: 'FAIL' | 'SUCCESS'; * // 数据 * data: T; * // 错误码 * errorCode?: string; * // 错误描述, resultCode 为 FAIL 时才有 * errorCodeDes?: string; * }; * ``` */ errorMessageField?: string; }; /** * 处理下载文件场景下,接口返回的文件流 * - 成功:直接触发浏览器文件下载,文件名来自 content-disposition 或自定义文件名 * - 失败:返回错误信息。 如果后端返回了错误信息(json 格式),则返回错误信息,否则返回 '导出失败' * @param res axios 请求返回的原始响应数据 * @param options 选项 * @param options.fileName 自定义文件名, 不使用 content-disposition 中的文件名 * @param options.errorMessageField 自定义错误信息字段 * @returns errMsg 失败时返回错误信息, 成功时返回 undefined * @example * ``` * const res = await axios.get('/api/export') // 返回文件流, res 是 axios 的原始数据 * const errMsg = await processFileStream(res) * if (errMsg) { * return message.error(errMsg) * } * message.success('导出成功') * ``` */ declare function processFileStream(res: AxiosResponse, options?: Options): Promise; //#endregion export { NormalizeRequestPayloadOptions, getFilenameFromContentDisposition, normalizeRequestPayload, processFileStream, saveAs }; //# sourceMappingURL=utils.d.ts.map