UNPKG

bowling-analysis-system

Version:

A comprehensive system for analyzing bowling techniques using video processing and metrics calculation

116 lines (102 loc) 2.54 kB
/** * @module config/env * @description Environment-specific configuration for the bowling analysis system */ /** * Load environment variables or use defaults * @returns {Object} Environment configuration */ function loadEnvironmentConfig() { return { // Debug mode DEBUG: process.env.DEBUG === 'true', // Data paths DATA_ROOT: process.env.DATA_ROOT || './', OUTPUT_DIR: process.env.OUTPUT_DIR || './output', // Processing options CONFIDENCE_THRESHOLD: parseFloat(process.env.CONFIDENCE_THRESHOLD || '0.1'), EVENT_CONFIDENCE_THRESHOLD: parseFloat(process.env.EVENT_CONFIDENCE_THRESHOLD || '0.6'), // Performance options WORKER_COUNT: parseInt(process.env.WORKER_COUNT || '1', 10), // Feature flags ENABLE_CACHING: process.env.ENABLE_CACHING !== 'false', ENABLE_VALIDATION: process.env.ENABLE_VALIDATION !== 'false' }; } /** * Current environment name * @type {string} */ const NODE_ENV = process.env.NODE_ENV || 'development'; /** * Is production environment * @type {boolean} */ const IS_PRODUCTION = NODE_ENV === 'production'; /** * Is development environment * @type {boolean} */ const IS_DEVELOPMENT = NODE_ENV === 'development'; /** * Is test environment * @type {boolean} */ const IS_TEST = NODE_ENV === 'test'; /** * Environment-specific configurations * @type {Object} */ const ENV_CONFIG = { development: { debug: true, enableValidation: true, enableCaching: true }, test: { debug: false, enableValidation: true, enableCaching: false }, production: { debug: false, enableValidation: false, enableCaching: true } }; /** * Current environment configuration * @type {Object} */ const CURRENT_ENV_CONFIG = ENV_CONFIG[NODE_ENV] || ENV_CONFIG.development; /** * Path configuration * @type {Object} */ const paths = { data: process.env.DATA_PATH || './data', output: process.env.OUTPUT_PATH || './data/output', logs: process.env.LOGS_PATH || './logs', temp: process.env.TEMP_PATH || './temp', reference: process.env.REFERENCE_PATH || './data/reference', bias: process.env.BIAS_PATH || './data/bias' }; /** * Logging configuration * @type {Object} */ const logging = { level: process.env.LOG_LEVEL || 'info', logToFile: process.env.LOG_TO_FILE !== 'false', logFormat: process.env.LOG_FORMAT || 'simple' }; module.exports = { loadEnvironmentConfig, NODE_ENV, IS_PRODUCTION, IS_DEVELOPMENT, IS_TEST, CURRENT_ENV_CONFIG, paths, logging };