UNPKG

@alova/adapter-axios

Version:

axios adapter for alova.js

122 lines (119 loc) 3.99 kB
/** * @alova/adapter-axios 2.0.20 (https://alova.js.org) * Document https://alova.js.org * Copyright 2026 Scott Hu. All Rights Reserved * Licensed under MIT (git://github.com/alovajs/alova/blob/main/LICENSE) */ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); //#region \0rolldown/runtime.js var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) { key = keys[i]; if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: ((k) => from[k]).bind(null, key), enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); //#endregion let _alova_shared = require("@alova/shared"); let axios = require("axios"); axios = __toESM(axios, 1); //#region src/mockResponse.ts const mockResponseHandler = ({ status, statusText, body }, _, currentMethod) => { const responseHeaders = {}; const { config } = currentMethod; const axiosConfig = { baseURL: currentMethod.baseURL, url: currentMethod.url, data: currentMethod.data, ...config, headers: new axios.AxiosHeaders(config.headers) }; const axiosResponse = { data: body, status, statusText, headers: responseHeaders, config: axiosConfig }; if (status >= 400) throw new axios.AxiosError(statusText, "ERR_BAD_REQUEST", axiosConfig, _alova_shared.undefinedValue, axiosResponse); return { response: axiosResponse, headers: responseHeaders }; }; const mockErrorHandler = (error, currentMethod) => { const { config } = currentMethod; return new axios.AxiosError(error.message, "ERR_NETWORK", { baseURL: currentMethod.baseURL, url: currentMethod.url, data: currentMethod.data, ...config, headers: new axios.AxiosHeaders(config.headers) }); }; var mockResponse_default = { onMockResponse: mockResponseHandler, onMockError: mockErrorHandler }; //#endregion //#region src/requestAdapter.ts /** * axios request adapter */ function requestAdapter(options = {}) { const adaptedAxiosInstance = options.axios || axios.default; const adapter = (_, method) => { let downloadHandler = _alova_shared.noop; let uploadHandler = _alova_shared.noop; const { config } = method; const controller = new AbortController(); const { baseURL, timeout } = adaptedAxiosInstance.defaults; const responsePromise = adaptedAxiosInstance({ url: method.url, method: method.type, baseURL: baseURL || method.baseURL, timeout: timeout || method.config.timeout, data: method.data, signal: controller.signal, onUploadProgress: process.env.NODE_ENV !== "test" ? (event) => { uploadHandler(event.loaded, event.total || 1); } : _alova_shared.undefinedValue, onDownloadProgress: (event) => { downloadHandler(event.loaded, event.total || 1); }, ...config }); return { response: () => responsePromise, headers: () => responsePromise.then((res) => res?.headers || (0, _alova_shared.newInstance)(axios.AxiosHeaders)), abort: () => { controller.abort(); }, onDownload: (handler) => { downloadHandler = handler; }, onUpload: (handler) => { uploadHandler = handler; } }; }; return adapter; } //#endregion exports.axiosMockResponse = mockResponse_default; exports.axiosRequestAdapter = requestAdapter; module.exports.default = module.exports; Object.defineProperty(module.exports, '__esModule', { value: true });