use-app-config.ts 933 B

123456789101112131415161718192021222324252627282930313233343536
  1. import type {
  2. ApplicationConfig,
  3. VbenAdminProAppConfigRaw,
  4. } from '@vben/types/global';
  5. /**
  6. * 由 vite-inject-app-config 注入的全局配置
  7. */
  8. export function useAppConfig(
  9. env: Record<string, any>,
  10. isProduction: boolean,
  11. ): ApplicationConfig {
  12. // 生产环境下,直接使用 window._VBEN_ADMIN_PRO_APP_CONF_ 全局变量
  13. const config = isProduction
  14. ? window._VBEN_ADMIN_PRO_APP_CONF_
  15. : (env as VbenAdminProAppConfigRaw);
  16. const {
  17. VITE_GLOB_API_URL,
  18. VITE_GLOB_AUTH_DINGDING_CORP_ID,
  19. VITE_GLOB_AUTH_DINGDING_CLIENT_ID,
  20. } = config;
  21. const applicationConfig: ApplicationConfig = {
  22. apiURL: VITE_GLOB_API_URL,
  23. auth: {},
  24. };
  25. if (VITE_GLOB_AUTH_DINGDING_CORP_ID && VITE_GLOB_AUTH_DINGDING_CLIENT_ID) {
  26. applicationConfig.auth.dingding = {
  27. clientId: VITE_GLOB_AUTH_DINGDING_CLIENT_ID,
  28. corpId: VITE_GLOB_AUTH_DINGDING_CORP_ID,
  29. };
  30. }
  31. return applicationConfig;
  32. }