Browse Source

refactor: small refactor in @vben-core/request

likui628 8 months ago
parent
commit
2c79ac1e6c

+ 1 - 2
apps/web-antd/src/router/guard.ts

@@ -92,10 +92,9 @@ function setupAccessGuard(router: Router) {
 
     // 生成路由表
     // 当前登录用户拥有的角色标识列表
-    let userRoles: string[] = [];
     const userInfo =
       accessStore.userInfo || (await accessStore.fetchUserInfo());
-    userRoles = userInfo.roles ?? [];
+    const userRoles = userInfo.roles ?? [];
 
     // 生成菜单和路由
     const { accessibleMenus, accessibleRoutes } = await generateAccess({

+ 12 - 8
packages/@core/forward/request/src/request-client/request-client.ts

@@ -6,7 +6,11 @@ import type {
   InternalAxiosRequestConfig,
 } from 'axios';
 
-import type { MakeAuthorizationFn, RequestClientOptions } from './types';
+import type {
+  MakeAuthorizationFn,
+  MakeErrorMessageFn,
+  RequestClientOptions,
+} from './types';
 
 import { $t } from '@vben-core/locales';
 import { merge } from '@vben-core/toolkit';
@@ -20,7 +24,8 @@ import { FileUploader } from './modules/uploader';
 class RequestClient {
   private instance: AxiosInstance;
   private makeAuthorization: MakeAuthorizationFn | undefined;
-  private options: RequestClientOptions;
+  private makeErrorMessage: MakeErrorMessageFn | undefined;
+
   public addRequestInterceptor: InterceptorManager['addRequestInterceptor'];
   public addResponseInterceptor: InterceptorManager['addResponseInterceptor'];
   public download: FileDownloader['download'];
@@ -40,12 +45,12 @@ class RequestClient {
       // 默认超时时间
       timeout: 10_000,
     };
-    const { makeAuthorization, ...axiosConfig } = options;
-    this.options = options;
+    const { makeAuthorization, makeErrorMessage, ...axiosConfig } = options;
     const requestConfig = merge(axiosConfig, defaultConfig);
 
     this.instance = axios.create(requestConfig);
     this.makeAuthorization = makeAuthorization;
+    this.makeErrorMessage = makeErrorMessage;
 
     // 实例化拦截器管理器
     const interceptorManager = new InterceptorManager(this.instance);
@@ -111,9 +116,8 @@ class RequestClient {
         } else if (error?.message?.includes?.('timeout')) {
           errMsg = $t('fallback.http.requestTimeout');
         }
-        const { makeAuthorization, makeErrorMessage } = this.options;
         if (errMsg) {
-          makeErrorMessage?.(errMsg);
+          this.makeErrorMessage?.(errMsg);
           return Promise.reject(error);
         }
 
@@ -128,7 +132,7 @@ class RequestClient {
 
           case 401: {
             errorMessage = $t('fallback.http.unauthorized');
-            makeAuthorization?.().unAuthorizedHandler?.();
+            this.makeAuthorization?.().unAuthorizedHandler?.();
             break;
           }
           case 403: {
@@ -150,7 +154,7 @@ class RequestClient {
           }
         }
 
-        makeErrorMessage?.(errorMessage);
+        this.makeErrorMessage?.(errorMessage);
         return Promise.reject(error);
       },
     );

+ 3 - 2
packages/@core/forward/request/src/request-client/types.ts

@@ -16,7 +16,7 @@ type MakeAuthorizationFn = (
   config?: InternalAxiosRequestConfig,
 ) => MakeAuthorization;
 
-type ErrorMessageFn = (message: string) => void;
+type MakeErrorMessageFn = (message: string) => void;
 
 interface RequestClientOptions extends CreateAxiosDefaults {
   /**
@@ -26,7 +26,7 @@ interface RequestClientOptions extends CreateAxiosDefaults {
   /**
    * 用于生成错误消息
    */
-  makeErrorMessage?: ErrorMessageFn;
+  makeErrorMessage?: MakeErrorMessageFn;
 }
 
 interface HttpResponse<T = any> {
@@ -42,6 +42,7 @@ interface HttpResponse<T = any> {
 export type {
   HttpResponse,
   MakeAuthorizationFn,
+  MakeErrorMessageFn,
   RequestClientOptions,
   RequestContentType,
 };

+ 0 - 1
packages/@core/ui-kit/shadcn-ui/src/components/index.ts

@@ -1,4 +1,3 @@
-// 修改过的button
 export * from './alert-dialog';
 export * from './avatar';
 export * from './back-top';