alloy-request
Version:
alloy-request 基于`axios`和`ahooks的useRequest`封装的 react 请求库
120 lines (119 loc) • 2.22 kB
JavaScript
import p from "axios";
import { useRequest as y } from "ahooks";
const T = {
headers: {
"Content-Type": "application/json"
},
timeout: 3e4
// 基础请求全局超时时间
}, o = p.create(T);
function x(r, n, t) {
o.interceptors.request.use(
//@ts-ignore
(e) => r ? r(e) : e,
(e) => Promise.reject(e)
), o.interceptors.response.use((e) => e.status === 200 ? n ? n(e) : e.data : Promise.reject(e), (e) => t ? t(e) : Promise.reject(e));
}
function a(r, n, t) {
try {
const { headers: e = {}, ...c } = t || {};
return o({
...c,
method: "POST",
url: r,
data: n,
headers: e
});
} catch (e) {
return console.log(e), Promise.reject(e);
}
}
function f(r, n, t) {
try {
const { headers: e = {}, ...c } = t || {};
return o({
...c,
method: "GET",
url: r,
data: n,
headers: e
});
} catch (e) {
return Promise.reject(e);
}
}
function m(r, n, t) {
try {
const { headers: e = {}, ...c } = t || {};
return o({
...c,
method: "PUT",
url: r,
data: n,
headers: e
});
} catch (e) {
return Promise.reject(e);
}
}
function h(r, n, t) {
try {
const { headers: e = {}, ...c } = t || {};
return o({
...c,
method: "PATCH",
url: r,
data: n,
headers: e
});
} catch (e) {
return Promise.reject(e);
}
}
function d(r, n, t) {
try {
const { headers: e = {}, ...c } = t || {};
return o({
...c,
method: "DELETE",
url: r,
data: n,
headers: e
});
} catch (e) {
return Promise.reject(e);
}
}
const s = {
get: f,
post: a,
put: m,
patch: h,
del: d
};
function E(r, n, t) {
return y(async (e) => {
var i;
const l = (n ?? (() => ({})))(e), { method: P = "post", payload: g, ...j } = l, u = (i = s[P]) == null ? void 0 : i.call(s, r, g, j);
return t != null && t.formatResult ? u.then(t.formatResult) : u;
}, t);
}
const R = {
initInstance: x,
post: a,
get: f,
put: m,
patch: h,
del: d,
useAxios: E
};
export {
R as default,
d as del,
f as get,
x as initInstance,
h as patch,
a as post,
m as put,
E as useAxios
};