bowling-analysis-system
Version:
A comprehensive system for analyzing bowling techniques using video processing and metrics calculation
116 lines (102 loc) • 2.54 kB
JavaScript
/**
* @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
};