59 lines
1.4 KiB
JavaScript
59 lines
1.4 KiB
JavaScript
/* eslint-disable no-unused-vars */
|
|
import path from 'path'
|
|
import merge from 'lodash/merge'
|
|
|
|
/* istanbul ignore next */
|
|
const requireProcessEnv = (name) => {
|
|
if (!process.env[name]) {
|
|
throw new Error('You must set the ' + name + ' environment variable')
|
|
}
|
|
return process.env[name]
|
|
}
|
|
|
|
/* istanbul ignore next */
|
|
if (process.env.NODE_ENV !== 'production') {
|
|
const dotenv = require('dotenv-safe')
|
|
dotenv.config({
|
|
path: path.join(__dirname, '../.env'),
|
|
example: path.join(__dirname, '../.env.example')
|
|
})
|
|
}
|
|
|
|
const config = {
|
|
all: {
|
|
env: process.env.NODE_ENV || 'development',
|
|
root: path.join(__dirname, '..'),
|
|
port: process.env.PORT || 9000,
|
|
ip: process.env.IP || '0.0.0.0',
|
|
apiRoot: process.env.API_ROOT || '',
|
|
masterKey: requireProcessEnv('MASTER_KEY'),
|
|
jwtSecret: requireProcessEnv('JWT_SECRET'),
|
|
mongo: {
|
|
options: {
|
|
useUnifiedTopology: true,
|
|
useNewUrlParser: true,
|
|
useCreateIndex: true
|
|
}
|
|
}
|
|
},
|
|
test: { },
|
|
development: {
|
|
mongo: {
|
|
uri: 'mongodb://localhost/doctor-apointment-dev',
|
|
options: {
|
|
debug: true
|
|
}
|
|
}
|
|
},
|
|
production: {
|
|
ip: process.env.IP || undefined,
|
|
port: process.env.PORT || 8080,
|
|
mongo: {
|
|
uri: process.env.MONGODB_URI || 'mongodb://localhost/doctor-apointment'
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = merge(config.all, config[config.all.env])
|
|
export default module.exports
|