Files
InfoGenie/InfoGenie-frontend/src/config/env.js

80 lines
2.3 KiB
JavaScript

import { tlsHost, loopbackPort } from './urlJoin.js';
const resolveApiUrl = () => {
const mode = import.meta.env.MODE;
const envApiUrl = import.meta.env.VITE_API_URL;
if (mode === 'production') {
if (envApiUrl && envApiUrl.trim() !== '') return envApiUrl;
return tlsHost('infogenie.api.shumengya.top');
}
if (envApiUrl && envApiUrl.trim() !== '') return envApiUrl;
return loopbackPort('127.0.0.1', '5002');
};
const resolveAuthUrl = () => {
const mode = import.meta.env.MODE;
const envAuthUrl = import.meta.env.VITE_AUTH_URL;
if (mode === 'production') {
if (envAuthUrl && envAuthUrl.trim() !== '') return envAuthUrl;
return tlsHost('auth.shumengya.top');
}
if (envAuthUrl && envAuthUrl.trim() !== '') return envAuthUrl;
return tlsHost('auth.shumengya.top');
};
const resolveAuthApiUrl = () => {
const mode = import.meta.env.MODE;
const envAuthApiUrl = import.meta.env.VITE_AUTH_API_URL;
if (mode === 'production') {
if (envAuthApiUrl && envAuthApiUrl.trim() !== '') return envAuthApiUrl;
return tlsHost('auth.api.shumengya.top');
}
if (envAuthApiUrl && envAuthApiUrl.trim() !== '') return envAuthApiUrl;
return tlsHost('auth.api.shumengya.top');
};
const config = {
API_URL: resolveApiUrl(),
AUTH_URL: resolveAuthUrl(),
AUTH_API_URL: resolveAuthApiUrl(),
DEBUG: import.meta.env.VITE_DEBUG === 'true',
LOG_LEVEL: 'debug',
};
/** 与后端 INFOGENIE_SITE_ADMIN_TOKEN 一致;不设则无法进入 /admin */
const siteAdminGate = String(import.meta.env.VITE_SITE_ADMIN_GATE || '').trim();
export const ENV_CONFIG = {
API_URL: config.API_URL,
AUTH_URL: config.AUTH_URL,
AUTH_API_URL: config.AUTH_API_URL,
DEBUG: config.DEBUG,
LOG_LEVEL: config.LOG_LEVEL,
APP_NAME: 'InfoGenie',
APP_VERSION: '2.2.3',
CLIENT_ID: 'infogenie',
CLIENT_NAME: '万象口袋',
SITE_ADMIN_GATE: siteAdminGate,
};
export const getEnvVar = (key, defaultValue = '') => {
switch (key) {
case 'VITE_API_URL': return ENV_CONFIG.API_URL;
case 'VITE_AUTH_URL': return ENV_CONFIG.AUTH_URL;
case 'VITE_AUTH_API_URL': return ENV_CONFIG.AUTH_API_URL;
default: return defaultValue;
}
};
if (typeof window !== 'undefined') {
window.ENV_CONFIG = ENV_CONFIG;
}
export default ENV_CONFIG;