Skip to content
Snippets Groups Projects
index.js 1.02 KiB
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