mountenv
Version:
mount/load .env files with support for .env.prod/.env.dev files
83 lines (70 loc) • 1.95 kB
JavaScript
// Generated by CoffeeScript 2.7.0
(function() {
var Path, defaults, expand, extend, fs, resolveConf;
fs = require('fs-jetpack');
extend = require('extend');
expand = require('./expand');
Path = require('path');
defaults = require('./defaults');
exports.get = function(path, conf) {
var baseEnv, file, files, i, len, output;
conf = resolveConf(conf);
if (path == null) {
path = process.cwd();
}
baseEnv = Path.join(path, conf.basename);
files = [];
output = Object.create(null);
if (fs.exists(baseEnv)) {
files.push(baseEnv);
}
switch (process.env.NODE_ENV) {
case 'development':
if (fs.exists(`${baseEnv}.dev`)) {
files.push(`${baseEnv}.dev`);
}
break;
case 'production':
if (fs.exists(`${baseEnv}.prod`)) {
files.push(`${baseEnv}.prod`);
}
break;
case 'staging':
if (fs.exists(`${baseEnv}.staging`)) {
files.push(`${baseEnv}.staging`);
}
break;
case 'test':
if (fs.exists(`${baseEnv}.test`)) {
files.push(`${baseEnv}.test`);
}
}
for (i = 0, len = files.length; i < len; i++) {
file = files[i];
extend(output, exports.parse(fs.read(file)));
}
if (conf.expand) {
return expand(output);
} else {
return output;
}
};
exports.getAll = function(path, conf) {
var current;
current = extend({}, process.env);
return extend(exports.get(path, conf), current);
};
exports.load = function(path, conf) {
if (exports.origEnv == null) {
exports.origEnv = extend({}, process.env);
}
return extend(process.env, exports.getAll(path, conf));
};
exports.parse = function(content) {
return require('dotenv').parse(content);
};
exports.origEnv = void 0;
resolveConf = function(conf) {
return extend({}, defaults, conf);
};
}).call(this);