| | |
| | | import type { GlobEnvConfig } from '/#/config'; |
| | | |
| | | import { warn } from '/@/utils/log'; |
| | | import type { GlobEnvConfig } from '#/config'; |
| | | import pkg from '../../package.json'; |
| | | import { getConfigFileName } from '../../build/getConfigFileName'; |
| | | import { API_ADDRESS } from '@/enums/cacheEnum'; |
| | | |
| | | export function getCommonStoragePrefix() { |
| | | const { VITE_GLOB_APP_SHORT_NAME } = getAppEnvConfig(); |
| | | return `${VITE_GLOB_APP_SHORT_NAME}__${getEnv()}`.toUpperCase(); |
| | | const { VITE_GLOB_APP_TITLE } = getAppEnvConfig(); |
| | | return `${VITE_GLOB_APP_TITLE.replace(/\s/g, '_')}__${getEnv()}`.toUpperCase(); |
| | | } |
| | | |
| | | // Generate cache key according to version |
| | |
| | | return `${getCommonStoragePrefix()}${`__${pkg.version}`}__`.toUpperCase(); |
| | | } |
| | | |
| | | export function getAppEnvConfig() { |
| | | const ENV_NAME = getConfigFileName(import.meta.env); |
| | | const getVariableName = (title: string) => { |
| | | function strToHex(str: string) { |
| | | const result: string[] = []; |
| | | for (let i = 0; i < str.length; ++i) { |
| | | const hex = str.charCodeAt(i).toString(16); |
| | | result.push(('000' + hex).slice(-4)); |
| | | } |
| | | return result.join('').toUpperCase(); |
| | | } |
| | | return `__PRODUCTION__${strToHex(title) || '__APP'}__CONF__`.toUpperCase().replace(/\s/g, ''); |
| | | }; |
| | | |
| | | const ENV = (import.meta.env.DEV |
| | | export function getAppEnvConfig() { |
| | | const ENV_NAME = getVariableName(import.meta.env.VITE_GLOB_APP_TITLE); |
| | | const ENV = import.meta.env.DEV |
| | | ? // Get the global configuration (the configuration will be extracted independently when packaging) |
| | | (import.meta.env as unknown as GlobEnvConfig) |
| | | : window[ENV_NAME as any]) as unknown as GlobEnvConfig; |
| | | |
| | | const { |
| | | VITE_GLOB_APP_TITLE, |
| | | VITE_GLOB_API_URL, |
| | | VITE_GLOB_APP_SHORT_NAME, |
| | | VITE_GLOB_API_URL_PREFIX, |
| | | VITE_GLOB_UPLOAD_URL, |
| | | } = ENV; |
| | | |
| | | if (!/^[a-zA-Z\_]*$/.test(VITE_GLOB_APP_SHORT_NAME)) { |
| | | warn( |
| | | `VITE_GLOB_APP_SHORT_NAME Variables can only be characters/underscores, please modify in the environment variables and re-running.` |
| | | ); |
| | | : (window[ENV_NAME] as unknown as GlobEnvConfig); |
| | | const { VITE_GLOB_APP_TITLE, VITE_GLOB_API_URL_PREFIX, VITE_GLOB_UPLOAD_URL } = ENV; |
| | | let { VITE_GLOB_API_URL } = ENV; |
| | | if (localStorage.getItem(API_ADDRESS)) { |
| | | const address = JSON.parse(localStorage.getItem(API_ADDRESS) || '{}'); |
| | | if (address?.key) VITE_GLOB_API_URL = address?.val; |
| | | } |
| | | |
| | | return { |
| | | VITE_GLOB_APP_TITLE, |
| | | VITE_GLOB_API_URL, |
| | | VITE_GLOB_APP_SHORT_NAME, |
| | | VITE_GLOB_API_URL_PREFIX, |
| | | VITE_GLOB_UPLOAD_URL, |
| | | }; |