detect-environment
Version:
Detect environments in JavaScript similar to the way Laravel does
114 lines (89 loc) • 1.99 kB
JavaScript
var
//
extend = require('extend'),
/**
*
*/
defaultOptions = {
/**
*
*/
'aliases' : {
'development' : ['dev', 'd'],
'local' : ['loc', 'l'],
'production' : ['prod', 'p'],
'testing' : ['test', 't']
},
/**
*
*/
'baseEnv' : 'production',
/**
*
*/
'baseName' : 'env',
/**
*
*/
'hidden' : true,
/**
*
*/
'extensions' : ['json', 'yml', 'yaml', ''],
/**
*
*/
'fallback' : 'local',
/**
*
*/
'shell' : false,
/**
*
*/
'strict' : false
},
/**
*
*/
parseOptions = function parseOptions (options, callback) {
//
if (typeof options === 'function') {
options = {
'callback' : options
};
//
} else if (options === true || options === false) {
options = {
'strict' : options
};
//
} else if (typeof options === 'string') {
//
if (!options) {
throw new TypeError('parseOptions:');
}
//
options = {
'fallback' : options
};
//
} else if (options === null || options === undefined) {
options = {};
}
//
if (Object.prototype.toString.call(options) !== '[object Object]') {
throw new TypeError('parseOptions:');
}
//
options = extend(true, defaultOptions, options);
//
if (typeof callback === 'function') {
options.callback = callback;
}
//
return options;
};
// Expose to node.js
module.exports = parseOptions;
;