UNPKG

detect-environment

Version:

Detect environments in JavaScript similar to the way Laravel does

115 lines (85 loc) 2.55 kB
'use strict'; var // findAliasName = require('./findAliasName'), getArgv = require('./getArgv'), getNodeEnv = require('./getNodeEnv'), /** * */ getEnvObj = function getEnvObj (options) { // if (!options.fallback || typeof options.fallback !== 'string') { throw new TypeError('getEnvObj:'); } // if (options.shell !== true && options.shell !== false) { throw new TypeError('getEnvObj:'); } var // argv = getArgv(), // envData = {}, // envName = options.fallback, // nodeEnv = getNodeEnv(), // callbackResult; // if (options.shell && nodeEnv && typeof nodeEnv === 'string') { envName = nodeEnv; } // if (argv.env && typeof argv.env === 'string') { envName = argv.env; } // if (typeof options.callback === 'function') { // callbackResult = options.callback(envName, envData); // switch (typeof callbackResult) { // case 'undefined': // noop // break; case 'string': // if (!callbackResult) { throw new TypeError('getEnvObj:'); } // envName = callbackResult; // break; case 'object': // if (!callbackResult.name || typeof callbackResult.name !== 'string') { throw new TypeError('getEnvObj:'); } // if (Object.prototype.toString.call(callbackResult.data) !== '[object Object]') { throw new TypeError('getEnvObj:'); } // envData = callbackResult.data; envName = callbackResult.name; // break; default: throw new TypeError('getEnvObj:'); } } // envName = findAliasName(options, envName); // return { 'data' : envData, 'name' : envName }; }; // Expose to node.js module.exports = getEnvObj;