import fs from 'fs'; import debug from 'debug'; import path from 'path'; import env2obj from 'env2obj'; import _ from 'lodash'; const log = debug('helper:config:info'); const error = debug('helper:config:error'); export class Config { constructor(basedir = process.env.PWD, prefix = 'APP') { let env = process.env.NODE_ENV || 'development'; process.env.NODE_ENV = env; this.file = {}; if (fs.existsSync(path.join(basedir, 'config.js'))) { this.file = require(path.join(basedir, 'config.js'), 'utf-8')[env]; } else { log('file', 'did not use ', path.join(basedir, 'config.js')) } this.fileDefault = {}; if (fs.existsSync(path.join(basedir, 'config.default.js'))) { this.fileDefault = require(path.join(basedir, 'config.default.js'), 'utf-8')[env] } else { log('file', 'did not use ', path.join(basedir, 'config.default.js')) } this.env = env2obj(prefix); this.config = _.merge(this.fileDefault, this.file, this.env); log('used config', this.config) } } const config = new Config(); exports.default = config.config;