Files: fbad0279dd4439c8eb8da96d385e27acd5755c74 / lib / config.js
1151 bytesRaw
1 | import fs from 'fs'; |
2 | import debug from 'debug'; |
3 | import path from 'path'; |
4 | import env2obj from 'env2obj'; |
5 | import _ from 'lodash'; |
6 | const log = debug('helper:config:info'); |
7 | const error = debug('helper:config:error'); |
8 | const debg = debug('helper:config:debug'); |
9 | export class Config { |
10 | constructor(basedir = process.env.PWD, prefix = 'APP') { |
11 | let env = process.env.NODE_ENV || 'development'; |
12 | process.env.NODE_ENV = env; |
13 | this.file = {}; |
14 | if (fs.existsSync(path.join(basedir, 'config.js'))) { |
15 | this.file = require(path.join(basedir, 'config.js'), 'utf-8')[env]; |
16 | } else { |
17 | debg('file', 'did not use ', path.join(basedir, 'config.js')) |
18 | } |
19 | this.fileDefault = {}; |
20 | if (fs.existsSync(path.join(basedir, 'config.default.js'))) { |
21 | this.fileDefault = |
22 | require(path.join(basedir, 'config.default.js'), 'utf-8')[env] |
23 | } else { |
24 | debg('file', 'did not use ', path.join(basedir, 'config.default.js')) |
25 | } |
26 | this.env = env2obj(prefix); |
27 | this.config = _.merge(this.fileDefault, this.file, this.env); |
28 | debg('used config', this.config) |
29 | } |
30 | } |
31 | const config = new Config(); |
32 | |
33 | exports.default = config.config; |
34 |
Built with git-ssb-web