191 lines
4.1 KiB
JavaScript
191 lines
4.1 KiB
JavaScript
/**
|
|
* Server Configuration Service
|
|
* Node.js compatible configuration for server files
|
|
*/
|
|
|
|
// API Configuration
|
|
export const getApiBaseUrl = () => {
|
|
return process.env.VITE_API_BASE_URL || 'http://localhost:8000';
|
|
};
|
|
|
|
export const getApiTimeout = () => {
|
|
return parseInt(process.env.VITE_API_TIMEOUT || '10000');
|
|
};
|
|
|
|
// App Configuration
|
|
export const getAppName = () => {
|
|
return process.env.VITE_APP_NAME || 'PowerOn';
|
|
};
|
|
|
|
export const getAppVersion = () => {
|
|
return process.env.VITE_APP_VERSION || '0.0.0';
|
|
};
|
|
|
|
export const getAppEnvironment = () => {
|
|
return process.env.VITE_APP_ENVIRONMENT || 'dev';
|
|
};
|
|
|
|
// Environment Detection
|
|
export const isDevelopment = () => {
|
|
return process.env.NODE_ENV === 'development' || getAppEnvironment() === 'dev';
|
|
};
|
|
|
|
export const isProduction = () => {
|
|
return process.env.NODE_ENV === 'production' || getAppEnvironment() === 'prod';
|
|
};
|
|
|
|
export const isIntegration = () => {
|
|
return getAppEnvironment() === 'int';
|
|
};
|
|
|
|
// Debug Configuration
|
|
export const isDebugMode = () => {
|
|
return process.env.VITE_DEBUG === 'true';
|
|
};
|
|
|
|
export const getLogLevel = () => {
|
|
return process.env.VITE_LOG_LEVEL || 'info';
|
|
};
|
|
|
|
export const isConsoleLogsEnabled = () => {
|
|
return process.env.VITE_ENABLE_CONSOLE_LOGS === 'true';
|
|
};
|
|
|
|
// Microsoft Authentication
|
|
export const getMicrosoftClientId = () => {
|
|
return process.env.VITE_MICROSOFT_CLIENT_ID;
|
|
};
|
|
|
|
export const getMicrosoftTenantId = () => {
|
|
return process.env.VITE_MICROSOFT_TENANT_ID;
|
|
};
|
|
|
|
export const getEntraClientSecret = () => {
|
|
return process.env.VITE_ENTRA_CLIENT_SECRET;
|
|
};
|
|
|
|
export const getEntraAuthority = () => {
|
|
return process.env.VITE_ENTRA_AUTHORITY;
|
|
};
|
|
|
|
export const getEntraRedirectPath = () => {
|
|
return process.env.VITE_ENTRA_REDIRECT_PATH;
|
|
};
|
|
|
|
export const getEntraRedirectUri = () => {
|
|
return process.env.VITE_ENTRA_REDIRECT_URI;
|
|
};
|
|
|
|
// Feature Flags
|
|
export const isFeatureEnabled = (feature) => {
|
|
const envKey = `VITE_ENABLE_${feature.toUpperCase()}`;
|
|
return process.env[envKey] === 'true';
|
|
};
|
|
|
|
// Analytics and Monitoring
|
|
export const isAnalyticsEnabled = () => {
|
|
return process.env.VITE_ENABLE_ANALYTICS === 'true';
|
|
};
|
|
|
|
export const isErrorReportingEnabled = () => {
|
|
return process.env.VITE_ENABLE_ERROR_REPORTING === 'true';
|
|
};
|
|
|
|
export const isPerformanceMonitoringEnabled = () => {
|
|
return process.env.VITE_ENABLE_PERFORMANCE_MONITORING === 'true';
|
|
};
|
|
|
|
// Development Server
|
|
export const getDevServerPort = () => {
|
|
return parseInt(process.env.VITE_DEV_SERVER_PORT || '5176');
|
|
};
|
|
|
|
export const getDevServerHost = () => {
|
|
return process.env.VITE_DEV_SERVER_HOST || 'localhost';
|
|
};
|
|
|
|
export const isDevServerHttps = () => {
|
|
return process.env.VITE_DEV_SERVER_HTTPS === 'true';
|
|
};
|
|
|
|
// Security Configuration
|
|
export const isHttpsEnabled = () => {
|
|
return process.env.VITE_ENABLE_HTTPS === 'true';
|
|
};
|
|
|
|
export const isCspEnabled = () => {
|
|
return process.env.VITE_ENABLE_CSP === 'true';
|
|
};
|
|
|
|
// Test Configuration
|
|
export const isMockDataEnabled = () => {
|
|
return process.env.VITE_ENABLE_MOCK_DATA === 'true';
|
|
};
|
|
|
|
export const isTestMode = () => {
|
|
return process.env.VITE_ENABLE_TEST_MODE === 'true';
|
|
};
|
|
|
|
// Server-specific configuration
|
|
export const getServerPort = () => {
|
|
return process.env.PORT || 3000;
|
|
};
|
|
|
|
export const getServerHost = () => {
|
|
return process.env.HOST || '0.0.0.0';
|
|
};
|
|
|
|
// Convenience object for easy destructuring
|
|
export const config = {
|
|
// API
|
|
getApiBaseUrl,
|
|
getApiTimeout,
|
|
|
|
// App
|
|
getAppName,
|
|
getAppVersion,
|
|
getAppEnvironment,
|
|
|
|
// Environment
|
|
isDevelopment,
|
|
isProduction,
|
|
isIntegration,
|
|
|
|
// Debug
|
|
isDebugMode,
|
|
getLogLevel,
|
|
isConsoleLogsEnabled,
|
|
|
|
// Microsoft Auth
|
|
getMicrosoftClientId,
|
|
getMicrosoftTenantId,
|
|
getEntraClientSecret,
|
|
getEntraAuthority,
|
|
getEntraRedirectPath,
|
|
getEntraRedirectUri,
|
|
|
|
// Features
|
|
isFeatureEnabled,
|
|
|
|
// Analytics
|
|
isAnalyticsEnabled,
|
|
isErrorReportingEnabled,
|
|
isPerformanceMonitoringEnabled,
|
|
|
|
// Dev Server
|
|
getDevServerPort,
|
|
getDevServerHost,
|
|
isDevServerHttps,
|
|
|
|
// Security
|
|
isHttpsEnabled,
|
|
isCspEnabled,
|
|
|
|
// Test
|
|
isMockDataEnabled,
|
|
isTestMode,
|
|
|
|
// Server
|
|
getServerPort,
|
|
getServerHost,
|
|
};
|