Blame view

Yi.Vben5.Vue3/packages/effects/request/src/request-client/modules/interceptor.ts 1.04 KB
515fceeb   “wangming”   框架初始化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
  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 };