0.1.6 • Published 2 years ago
axios-enhance-adapter v0.1.6
axios enhance adapter
Note: Currently, only support axios <= v0.27.2
Features:
- Avoid repeat requests at same time
- Error retry
Usage
import { getEnhanceAdapter } from 'axios-enhance-adapter';
import axios, { AxiosRequestConfig } from 'axios';
const axiosInstance = axios.create({
baseURL: `http://127.0.0.1:${port}`,
adapter: getEnhanceAdapter(defaultOptions),
});
const defaultOptions = {
shouldRetryOnError: (err) => {
return true;
},
errorRetryInterval: 3000,
errorRetryCount: 3,
checkEnable(config: AxiosRequestConfig) {
const method = config.method?.toLowerCase();
const isGet = method === 'get';
return isGet;
},
getKey(config: AxiosRequestConfig) {
const { method, data, params, url } = config;
const arr = [method, url];
if (data) {
arr.push(JSON.stringify(data));
}
if (params) {
arr.push(JSON.stringify(params));
}
return arr.join(',');
},
};
// only one will send
await Promise.all([1, 2, 3, 4, 5].map((item) => axiosInstance.get('/')));
// disable repeat requests filter and error retry
await Promise.all(
[1, 2, 3, 4, 5].map((item) =>
axiosInstance.get('/', {
checkEnable: () => false,
})
)
);
// only disable error retry
await Promise.all(
[1, 2, 3, 4, 5].map((item) =>
axiosInstance.get('/', {
shouldRetryOnError: (err) => {
if (err.status === 401 || err.status === 403) {
return false;
}
return true;
},
})
)
);
0.1.6
2 years ago
0.1.5
2 years ago
0.1.4
2 years ago
0.1.3
2 years ago
0.1.2
2 years ago
0.1.1
2 years ago
0.0.13
2 years ago
0.0.12
2 years ago
0.0.11
2 years ago
0.0.10
2 years ago
0.0.9
2 years ago
0.0.8
2 years ago
0.0.7
2 years ago
0.0.6
2 years ago
0.0.5
2 years ago
0.0.4
2 years ago
0.0.3
2 years ago
0.0.2
2 years ago
0.0.1
2 years ago