text: 'use strict';
  
  const path = require('path');
  const _ = require('lodash');
  
  // function requiredProcessEnv(name) {
  //   if (!process.env[name]) {
  //     throw new Error(`You must set the ${name} environment variable`);
  //   }
  //   return process.env[name];
  // }
  
  // All configurations will extend these options
  // ============================================
  const all = {
    env: process.env.NODE_ENV,
  
    // Root path of server
    root: path.normalize(`${__dirname}/../../..`),
  
    // Server port
    port: process.env.PORT || 3000,
  
    // Server IP
    ip: process.env.IP || '0.0.0.0',
  
    // Should we populate the DB with sample data?
    seedDB: false,
  
    secrets: {
      session: process.env.SESSION_SECRET
    },
  
    // List of user roles
    userRoles: ['guest', 'member', 'admin'],
  
    // MongoDB connection options
    mongo: {
      options: {
        db: {
          safe: true
        }
      }
    },
  
    facebook: {
      clientID: process.env.FACEBOOK_ID || 'id',
      clientSecret: process.env.FACEBOOK_SECRET || 'secret',
      callbackURL: (process.env.DOMAIN || '') + '/auth/facebook/callback' // eslint-disable-line prefer-template
    },
  
    google: {
      clientID: process.env.GOOGLE_ID || 'id',
      clientSecret: process.env.GOOGLE_SECRET || 'secret',
      callbackURL: (process.env.DOMAIN || '') + '/auth/google/callback' // eslint-disable-line prefer-template
    }
  };
  
  // Export the config object based on the NODE_ENV
  // ==============================================
  module.exports = _.merge(
    all,
    require(`./${process.env.NODE_ENV}.js`) || {});
  