UNPKG

@fecp/mobile

Version:

126 lines (125 loc) 3.84 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); require("../../../../node_modules/.pnpm/axios@1.8.4/node_modules/axios/index.js"); const axios$1 = require("../../../../node_modules/.pnpm/axios@1.8.4/node_modules/axios/lib/axios.js"); const axios = () => { const service = axios$1.default.create({ withCredentials: false }); const pendingMap = /* @__PURE__ */ new Map(); service.interceptors.request.use( (config) => { removePending(config); addPending(config); if (config.url != "/login") { config.headers.token = sessionStorage.getItem("token"); config.headers.refreshToken = sessionStorage.getItem("refreshToken"); } config.headers.crypto = false; config.headers.sig = false; return config; }, (error) => { Promise.reject(error); } ); service.interceptors.response.use( (response) => { removePending(response.config); if (response.config.responseType == "blob") { return response; } if (response.data && response.data.code == "500") { return Promise.reject(response.data); } if (response.data.message) ; let responseData = response.data; return responseData; }, async (error) => { error.config && removePending(error.config); if (axios$1.default.isCancel(error)) { return console.error("请求的重复请求:" + error.message); } if (error.response.config.responseType == "blob") { let reader = new FileReader(); reader.onload = function(event) { let data = JSON.parse(reader.result); showErrorMessage(data.message, data.messageType); return Promise.reject(error); }; reader.readAsText(error.response.data); } else { return Promise.reject(error); } } ); function addPending(config) { const pendingKey = getPendingKey(config); config.cancelToken = config.cancelToken || new axios$1.default.CancelToken((cancel) => { if (!pendingMap.has(pendingKey)) { pendingMap.set(pendingKey, cancel); } }); } function removePending(config) { const pendingKey = getPendingKey(config); if (pendingMap.has(pendingKey)) { const cancelToken = pendingMap.get(pendingKey); cancelToken(pendingKey); pendingMap.delete(pendingKey); } } function getPendingKey(config) { let { url, method, params, data } = config; if (typeof data === "string") data = JSON.parse(data); return [url, method, JSON.stringify(params), JSON.stringify(data)].join( "&" ); } return { request(config) { return service(config); }, get(url, config) { return service.get(url, config); }, delete(url, config) { return service.delete(url, config); }, head(url, config) { return service.head(url, config); }, post(url, data, config) { return service.post(url, data, config); }, postForm(url, data, config) { return service.postForm(url, data, config); }, put(url, data, config) { return service.put(url, data, config); }, upload(url, data, config) { return service.postForm(url, data, config); }, interceptors: { request: { use(fnHandle, fnError) { return service.interceptors.request.use(fnHandle, fnError); }, eject(id) { return service.interceptors.request.eject(id); } }, response: { use(fnHandle, fnError) { return service.interceptors.response.use(fnHandle, fnError); }, eject(id) { return service.interceptors.response.eject(id); } } } }; }; exports.default = axios;