|
import path from 'path'; |
|
|
|
import fs from 'fs-extra'; |
|
import minimist from 'minimist'; |
|
import _ from 'lodash'; |
|
|
|
const cmdArgs = minimist(process.argv.slice(2)); |
|
const envVars = process.env; |
|
|
|
class Environment { |
|
|
|
|
|
cmdArgs: any; |
|
|
|
envVars: any; |
|
|
|
env?: string; |
|
|
|
name?: string; |
|
|
|
host?: string; |
|
|
|
port?: number; |
|
|
|
package: any; |
|
|
|
constructor(options: any = {}) { |
|
const { cmdArgs, envVars, package: _package } = options; |
|
this.cmdArgs = cmdArgs; |
|
this.envVars = envVars; |
|
this.env = _.defaultTo(cmdArgs.env || envVars.SERVER_ENV, 'dev'); |
|
this.name = cmdArgs.name || envVars.SERVER_NAME || undefined; |
|
this.host = cmdArgs.host || envVars.SERVER_HOST || undefined; |
|
this.port = Number(cmdArgs.port || envVars.SERVER_PORT) ? Number(cmdArgs.port || envVars.SERVER_PORT) : undefined; |
|
this.package = _package; |
|
} |
|
|
|
} |
|
|
|
export default new Environment({ |
|
cmdArgs, |
|
envVars, |
|
package: JSON.parse(fs.readFileSync(path.join(path.resolve(), "package.json")).toString()) |
|
}); |