Index: node_modules/vulcanize/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/lib/utils.js |
diff --git a/node_modules/vulcanize/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/lib/utils.js b/node_modules/vulcanize/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/lib/utils.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5ce509d0ec74520795c0555fe52c6ca81684beaf |
--- /dev/null |
+++ b/node_modules/vulcanize/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/lib/utils.js |
@@ -0,0 +1,97 @@ |
+var fs = require('fs') |
+var ini = require('ini') |
+var path = require('path') |
+var stripJsonComments = require('strip-json-comments') |
+ |
+var parse = exports.parse = function (content, file) { |
+ |
+ //if it ends in .json or starts with { then it must be json. |
+ //must be done this way, because ini accepts everything. |
+ //can't just try and parse it and let it throw if it's not ini. |
+ //everything is ini. even json with a systax error. |
+ |
+ if((file && /\.json$/.test(file)) || /^\s*{/.test(content)) |
+ return JSON.parse(stripJsonComments(content)) |
+ return ini.parse(content) |
+ |
+} |
+ |
+var json = exports.json = function () { |
+ var args = [].slice.call(arguments).filter(function (arg) { return arg != null }) |
+ |
+ //path.join breaks if it's a not a string, so just skip this. |
+ for(var i in args) |
+ if('string' !== typeof args[i]) |
+ return |
+ |
+ var file = path.join.apply(null, args) |
+ var content |
+ try { |
+ content = fs.readFileSync(file,'utf-8') |
+ } catch (err) { |
+ return |
+ } |
+ return parse(content) |
+} |
+ |
+var env = exports.env = function (prefix, env) { |
+ env = env || process.env |
+ var obj = {} |
+ var l = prefix.length |
+ for(var k in env) { |
+ if((k.indexOf(prefix)) === 0) { |
+ |
+ var keypath = k.substring(l).split('__') |
+ |
+ // Trim empty strings from keypath array |
+ var _emptyStringIndex |
+ while ((_emptyStringIndex=keypath.indexOf('')) > -1) { |
+ keypath.splice(_emptyStringIndex, 1) |
+ } |
+ |
+ var cursor = obj |
+ keypath.forEach(function _buildSubObj(_subkey,i){ |
+ |
+ // (check for _subkey first so we ignore empty strings) |
+ if (!_subkey) |
+ return |
+ |
+ // If this is the last key, just stuff the value in there |
+ // Assigns actual value from env variable to final key |
+ // (unless it's just an empty string- in that case use the last valid key) |
+ if (i === keypath.length-1) |
+ cursor[_subkey] = env[k] |
+ |
+ |
+ // Build sub-object if nothing already exists at the keypath |
+ if (cursor[_subkey] === undefined) |
+ cursor[_subkey] = {} |
+ |
+ // Increment cursor used to track the object at the current depth |
+ cursor = cursor[_subkey] |
+ |
+ }) |
+ |
+ } |
+ |
+ } |
+ |
+ return obj |
+} |
+ |
+var find = exports.find = function () { |
+ var rel = path.join.apply(null, [].slice.call(arguments)) |
+ |
+ function find(start, rel) { |
+ var file = path.join(start, rel) |
+ try { |
+ fs.statSync(file) |
+ return file |
+ } catch (err) { |
+ if(path.dirname(start) !== start) // root |
+ return find(path.dirname(start), rel) |
+ } |
+ } |
+ return find(process.cwd(), rel) |
+} |
+ |