var fs = require('fs') var path = require('path') var merge = require('lodash.merge') let configDefaults = path.join(path.dirname(require.main.filename || process.mainModule.filename), 'config.defaults.json') let configLocal = path.join(path.dirname(require.main.filename || process.mainModule.filename), 'config.json') let config = {} const iterate = function (obj) { for (let index = 0; index < Object.keys(obj).length; index++) { const element = Object.keys(obj)[index] if (process.env[element]) { obj[element] = process.env[element] } // TODO: encode values here if (typeof element === 'object') { iterate(element) } } } try { fs.accessSync(configDefaults) config = JSON.parse(fs.readFileSync(configDefaults, 'utf8')) } catch(error) { console.log('No File ' + configDefaults) } try { fs.accessSync(configLocal) config = merge(config, JSON.parse(fs.readFileSync(configLocal, 'utf8'))) } catch (error) { console.log('No File ' + configLocal) } iterate(config) module.exports = config