mountenv
Version:
mount/load .env files with support for .env.prod/.env.dev files
42 lines (36 loc) • 994 B
JavaScript
// Generated by CoffeeScript 2.7.0
(function() {
var ESCAPE_CHAR, REGEX, interpolate;
ESCAPE_CHAR = '\\';
REGEX = {
hasVars: /\$/,
variable: /(?:\\)?(?:\$([a-zA-Z0-9_]+)|\${([a-zA-Z0-9_]+)})/g
};
interpolate = function(env, value) {
return value.replace(REGEX.variable, function(match, key1, key2, index) {
var key, replacement;
key = key1 || key2;
if (match[0] === ESCAPE_CHAR) {
return match.slice(1);
} else {
replacement = process.env[key] || env[key] || '';
if (replacement) {
replacement = interpolate(env, replacement);
}
return replacement;
}
});
};
module.exports = function(env) {
var i, key, len, ref, value;
ref = Object.keys(env);
for (i = 0, len = ref.length; i < len; i++) {
key = ref[i];
value = env[key];
if (REGEX.hasVars.test(value)) {
env[key] = interpolate(env, value);
}
}
return env;
};
}).call(this);