frontend_nyla/config/universalConfig.js
2025-09-10 13:04:16 +02:00

101 lines
2.4 KiB
JavaScript

/**
* Universal Configuration - Works in both Node.js and Browser
*/
// Helper to get environment variable (works in both Node.js and browser)
const getEnvVar = (key, defaultValue = undefined) => {
// Node.js environment
if (typeof process !== 'undefined' && process.env) {
return process.env[key] || defaultValue;
}
// Browser environment (Vite)
if (typeof import !== 'undefined' && import.meta && import.meta.env) {
return import.meta.env[key] || defaultValue;
}
return defaultValue;
};
// API Configuration
export const getApiBaseUrl = () => {
return getEnvVar('VITE_API_BASE_URL', 'http://localhost:8000');
};
export const getApiTimeout = () => {
return parseInt(getEnvVar('VITE_API_TIMEOUT', '10000'));
};
// App Configuration
export const getAppName = () => {
return getEnvVar('VITE_APP_NAME', 'PowerOn');
};
export const getAppVersion = () => {
return getEnvVar('VITE_APP_VERSION', '0.0.0');
};
export const getAppEnvironment = () => {
return getEnvVar('VITE_APP_ENVIRONMENT', 'dev');
};
// Environment Detection
export const isDevelopment = () => {
const mode = getEnvVar('NODE_ENV') || getEnvVar('MODE');
const appEnv = getAppEnvironment();
return mode === 'development' || appEnv === 'dev';
};
export const isProduction = () => {
const mode = getEnvVar('NODE_ENV') || getEnvVar('MODE');
const appEnv = getAppEnvironment();
return mode === 'production' || appEnv === 'prod';
};
export const isIntegration = () => {
return getAppEnvironment() === 'int';
};
// Debug Configuration
export const isDebugMode = () => {
return getEnvVar('VITE_DEBUG') === 'true';
};
export const getLogLevel = () => {
return getEnvVar('VITE_LOG_LEVEL', 'info');
};
// Microsoft Authentication
export const getMicrosoftClientId = () => {
return getEnvVar('VITE_MICROSOFT_CLIENT_ID');
};
export const getMicrosoftTenantId = () => {
return getEnvVar('VITE_MICROSOFT_TENANT_ID');
};
export const getEntraAuthority = () => {
return getEnvVar('VITE_ENTRA_AUTHORITY');
};
export const getEntraRedirectUri = () => {
return getEnvVar('VITE_ENTRA_REDIRECT_URI');
};
// Convenience object
export const config = {
getApiBaseUrl,
getApiTimeout,
getAppName,
getAppVersion,
getAppEnvironment,
isDevelopment,
isProduction,
isIntegration,
isDebugMode,
getLogLevel,
getMicrosoftClientId,
getMicrosoftTenantId,
getEntraAuthority,
getEntraRedirectUri,
};