You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
1.8 KiB
83 lines
1.8 KiB
import pkg from '../../package.json' |
|
import type { GlobEnvConfig } from '@/types/config' |
|
|
|
import { warn } from '@/utils/log' |
|
|
|
export function getCommonStoragePrefix() { |
|
const { VITE_GLOB_APP_SHORT_NAME } = getAppEnvConfig() |
|
return `${VITE_GLOB_APP_SHORT_NAME}__${getEnv()}`.toUpperCase() |
|
} |
|
|
|
// Generate cache key according to version |
|
export function getStorageShortName() { |
|
return `${getCommonStoragePrefix()}${`__${pkg.version}`}__`.toUpperCase() |
|
} |
|
|
|
export function getAppEnvConfig() { |
|
const ENV = import.meta.env as unknown as GlobEnvConfig |
|
|
|
const { |
|
VITE_GLOB_APP_TITLE, |
|
VITE_GLOB_BASE_URL, |
|
VITE_GLOB_API_URL, |
|
VITE_GLOB_APP_SHORT_NAME, |
|
VITE_GLOB_API_URL_PREFIX, |
|
VITE_GLOB_UPLOAD_URL, |
|
VITE_GLOB_APP_TENANT_ENABLE, |
|
VITE_GLOB_APP_CAPTCHA_ENABLE, |
|
} = 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.', |
|
) |
|
} |
|
|
|
return { |
|
VITE_GLOB_APP_TITLE, |
|
VITE_GLOB_BASE_URL, |
|
VITE_GLOB_API_URL, |
|
VITE_GLOB_APP_SHORT_NAME, |
|
VITE_GLOB_API_URL_PREFIX, |
|
VITE_GLOB_UPLOAD_URL, |
|
VITE_GLOB_APP_TENANT_ENABLE, |
|
VITE_GLOB_APP_CAPTCHA_ENABLE, |
|
} |
|
} |
|
|
|
/** |
|
* @description: Development mode |
|
*/ |
|
export const devMode = 'development' |
|
|
|
/** |
|
* @description: Production mode |
|
*/ |
|
export const prodMode = 'production' |
|
|
|
/** |
|
* @description: Get environment variables |
|
* @returns: |
|
* @example: |
|
*/ |
|
export function getEnv(): string { |
|
return import.meta.env.MODE |
|
} |
|
|
|
/** |
|
* @description: Is it a development mode |
|
* @returns: |
|
* @example: |
|
*/ |
|
export function isDevMode(): boolean { |
|
return import.meta.env.DEV |
|
} |
|
|
|
/** |
|
* @description: Is it a production mode |
|
* @returns: |
|
* @example: |
|
*/ |
|
export function isProdMode(): boolean { |
|
return import.meta.env.PROD |
|
}
|
|
|