Comparing version
22
index.js
@@ -21,12 +21,24 @@ /** | ||
exports = module.exports = function env(name, defaultVal) { | ||
var location = /\((.+)\)/.exec((new Error).stack.split("\n")[2]) | ||
, lineno = location[1] | ||
, val = process.env[name] || defaultVal; | ||
// Get the value | ||
var val = process.env[name] || defaultVal; | ||
// Parse the stack | ||
var lineno = (new Error).stack.split("\n")[2].trim(); | ||
// Log it | ||
debug(lineno, name+"="+val); | ||
if(!usages[name]) usages[name] = []; | ||
// Track the usages | ||
var envUsages = usages[name]; | ||
usages[name].push({lineno: lineno, defaultVal: defaultVal, val: val}); | ||
// Create it if we don't have it already | ||
if(!envUsages) envUsages = usages[name] = []; | ||
// Check to see if we've already added this line number | ||
for (var i = envUsages.length - 1; i >= 0; i--) { | ||
if (envUsages[i].lineno === lineno) return val; | ||
}; | ||
envUsages.push({lineno: lineno, defaultVal: defaultVal, val: val}); | ||
return val; | ||
@@ -33,0 +45,0 @@ }; |
{ | ||
"name": "envs", | ||
"version": "0.1.0", | ||
"version": "0.1.1", | ||
"description": "Track environment variable usage", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -21,2 +21,9 @@ /** | ||
}); | ||
it("should only add a line once", function() { | ||
[1,2,3,4,5].forEach(function() { | ||
envs("MULTIPLE_VAR"); | ||
}); | ||
envs.usages.MULTIPLE_VAR.should.have.length(1); | ||
}); | ||
}); |
3009
18.42%62
31.91%