UNPKG

@fast-china/axios

Version:

Fast Axios 请求工具库.

51 lines (50 loc) 1.84 kB
import { AxiosHeaders, AxiosError } from "axios"; import settle from "../../node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/core/settle.mjs"; import { resolveUniAppRequestOptions } from "../utils/index.mjs"; import OnCanceled from "./onCanceled.mjs"; const upload = (config) => { return new Promise((resolve, reject) => { const requestOptions = resolveUniAppRequestOptions(config); const responseConfig = config; responseConfig.headers = new AxiosHeaders(requestOptions.header); const onCanceled = new OnCanceled(config); let task = uni.uploadFile({ ...requestOptions, success(result) { if (!task) return; const response = { config: responseConfig, data: result.data, headers: {}, status: result.statusCode, statusText: result.errMsg ?? "OK", request: task }; settle(resolve, reject, response); task = null; }, fail(error) { const { errMsg = "" } = error ?? {}; if (errMsg) { const isTimeoutError = errMsg === "uploadFile:fail timeout"; const isNetworkError = errMsg === "uploadFile:fail file error"; if (isTimeoutError) reject(new AxiosError(errMsg, AxiosError.ETIMEDOUT, responseConfig, task)); if (isNetworkError) { reject(new AxiosError(errMsg, AxiosError.ERR_NETWORK, responseConfig, task)); } } reject(new AxiosError(error.errMsg, void 0, responseConfig, task)); task = null; }, complete() { onCanceled.unsubscribe(); } }); if (typeof config.onHeadersReceived === "function") task.onHeadersReceived(config.onHeadersReceived); onCanceled.subscribe(task, reject); }); }; export { upload as default }; //# sourceMappingURL=upload.mjs.map