UNPKG

axios-easyconf

Version:

基于axios的轻量级二次封装库,支持自动协议匹配、简化拦截器配置、自动挂载 WebSocket 地址。

26 lines (25 loc) 1.2 kB
import l from "axios"; export * from "axios"; class p { static create(t) { const o = l.create(t); let e = o.defaults.baseURL; const s = typeof window < "u" ? window.location.protocol : void 0; if (e && t?.autoProtocol && s && typeof e == "string") try { e = e.replace(/^https?:/, s), o.defaults.baseURL = e; } catch (r) { console.error("替换 baseURL 协议时出错:", r); } else t?.autoProtocol && (s ? typeof e != "string" && console.warn("baseURL 不是字符串,跳过自动替换协议") : console.warn("无法获取 window.location.protocol,跳过自动替换协议")); e ? (o.WS_URL = e.replace(/^http/, "ws"), o.BASE_URL = e) : typeof window < "u" && window.location?.origin && (e = window.location.origin, o.WS_URL = e.replace(/^http/, "ws"), o.BASE_URL = e); const n = t.beforeRequest?.[0] || ((r) => r), a = t.beforeRequest?.[1] || ((r) => Promise.reject(r)), c = t.beforeResponse?.[0] || ((r) => r), i = t.beforeResponse?.[1] || ((r) => Promise.reject(r)); return o.interceptors.request.use(n, a), o.interceptors.response.use(c, i), o; } } const w = p.create; export { w as createRequest, p as default };