| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- import type { AxiosInstance, AxiosResponse } from 'axios';
- import type {
- RequestInterceptorConfig,
- ResponseInterceptorConfig,
- } from '../types';
- const defaultRequestInterceptorConfig: RequestInterceptorConfig = {
- fulfilled: (response) => response,
- rejected: (error) => Promise.reject(error),
- };
- const defaultResponseInterceptorConfig: ResponseInterceptorConfig = {
- fulfilled: (response: AxiosResponse) => response,
- rejected: (error) => Promise.reject(error),
- };
- class InterceptorManager {
- private axiosInstance: AxiosInstance;
- constructor(instance: AxiosInstance) {
- this.axiosInstance = instance;
- }
- addRequestInterceptor({
- fulfilled,
- rejected,
- }: RequestInterceptorConfig = defaultRequestInterceptorConfig) {
- this.axiosInstance.interceptors.request.use(fulfilled, rejected);
- }
- addResponseInterceptor<T = any>({
- fulfilled,
- rejected,
- }: ResponseInterceptorConfig<T> = defaultResponseInterceptorConfig) {
- this.axiosInstance.interceptors.response.use(fulfilled, rejected);
- }
- }
- export { InterceptorManager };
|