let fs = require('fs'); let { logger } = require('./logging'); let loadedConfigs = new Map(); function sanitizeConfig(config: any, fields = []) : any { let clonedConfig = { ...config }; fields.forEach((field) => { clonedConfig[field] = '******' }) return clonedConfig; } function getConfig(configFile: string, sanitizedFields: Array = [], reload: Boolean = false) : any { if (loadedConfigs.has(configFile) && !reload) { return loadedConfigs.get(configFile); } else { logger.info("Reading config: %s", configFile); let rawConfigData = fs.readFileSync(configFile); let config = JSON.parse(rawConfigData); logger.info("Loaded config: %s", configFile); logger.debug("%o", sanitizeConfig(config, sanitizedFields)); loadedConfigs.set(configFile, config); return config; } } export { getConfig }; export { sanitizeConfig };