use-app-config.ts 875 B

123456789101112131415161718192021222324252627282930
  1. import type { ApplicationConfig, SixAppConfigRaw } from '@vben/types/global';
  2. const REQUEST_API_CONFIG_PREFIX = 'VITE_GLOB_API_';
  3. /**
  4. * 由 vite-inject-app-config 注入的全局配置
  5. */
  6. export function useAppConfig(
  7. env: Record<string, any>,
  8. isProduction: boolean,
  9. ): ApplicationConfig {
  10. // 生产环境下,直接使用 window._VBEN_ADMIN_PRO_APP_CONF_ 全局变量
  11. const config = isProduction
  12. ? window._VBEN_ADMIN_PRO_APP_CONF_
  13. : <SixAppConfigRaw>env;
  14. const requestBaseURL: ApplicationConfig['requestBaseURL'] = {};
  15. const sliceStart = REQUEST_API_CONFIG_PREFIX.length;
  16. for (const [key, value] of Object.entries(config)) {
  17. if (key.startsWith(REQUEST_API_CONFIG_PREFIX)) {
  18. requestBaseURL[key.slice(sliceStart).toLowerCase()] = value;
  19. }
  20. }
  21. return {
  22. apiURL: config.VITE_GLOB_API_URL,
  23. auth: {},
  24. requestBaseURL,
  25. };
  26. }