55 lines
1.1 KiB
JavaScript
55 lines
1.1 KiB
JavaScript
import axios from 'axios';
|
|
export { default } from 'axios';
|
|
|
|
const getResponse = (res, config) => {
|
|
const { statusCode, errMsg } = res;
|
|
const response = {
|
|
...res,
|
|
status: statusCode,
|
|
statusText: errMsg,
|
|
config,
|
|
request: null,
|
|
};
|
|
|
|
return response;
|
|
};
|
|
|
|
const uniAdapter = (config) => {
|
|
if (!uni) {
|
|
throw new Error("please use this in uni-app project!");
|
|
}
|
|
return new Promise((resolve, reject) => {
|
|
const { baseURL, url, headers, data, params } = config;
|
|
const uniConfig = {
|
|
...config,
|
|
url: baseURL + url,
|
|
header: headers,
|
|
};
|
|
|
|
if (data || params) {
|
|
try {
|
|
uniConfig.data = JSON.parse(data || params);
|
|
} catch (e) {
|
|
uniConfig.data = data || params;
|
|
}
|
|
}
|
|
uni.request({
|
|
...uniConfig,
|
|
success(res) {
|
|
const response = getResponse(res, config);
|
|
resolve(response);
|
|
},
|
|
fail(res) {
|
|
const response = getResponse(res, config);
|
|
reject(response);
|
|
},
|
|
});
|
|
});
|
|
};
|
|
|
|
const UniAdapter = uniAdapter;
|
|
|
|
axios.defaults.adapter = uniAdapter;
|
|
|
|
export { UniAdapter };
|