File: /home/frenchy/www/french-american.org/current/node_modules/dotenv-parse-variables/lib/index.js
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _debug = require('debug');
var _debug2 = _interopRequireDefault(_debug);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var debug = new _debug2.default('dotenv-parse-variables');
var DEFAULT_OPTIONS = {
assignToProcessEnv: true,
overrideProcessEnv: false
};
exports.default = function (env, options) {
var envOptions = Object.assign({}, DEFAULT_OPTIONS, options || {});
Object.keys(env).forEach(function (key) {
debug('key "' + key + '" before type was ' + _typeof(env[key]));
if (env[key]) {
env[key] = parseKey(env[key], key);
debug('key "' + key + '" after type was ' + _typeof(env[key]));
if (envOptions.assignToProcessEnv === true) {
if (envOptions.overrideProcessEnv === true) {
process.env[key] = env[key] || process.env[key];
} else {
process.env[key] = process.env[key] || env[key];
}
}
}
});
return env;
};
function parseKey(value, key) {
debug('parsing key ' + key + ' with value ' + value);
// if the value is wrapped in bacticks e.g. (`value`) then just return its value
if (value.toString().indexOf('`') === 0 && value.toString().lastIndexOf('`') === value.toString().length - 1) {
debug('key ' + key + ' is wrapped in bacticks and will be ignored from parsing');
return value.toString().substring(1, value.toString().length - 1);
}
// if the value ends in an asterisk then just return its value
if (value.toString().lastIndexOf('*') === value.toString().length - 1 && value.toString().indexOf(',') === -1) {
debug('key ' + key + ' ended in * and will be ignored from parsing');
return value.toString().substring(0, value.toString().length - 1);
}
// Boolean
if (value.toString().toLowerCase() === 'true' || value.toString().toLowerCase() === 'false') {
debug('key ' + key + ' parsed as a Boolean');
return value.toString().toLowerCase() === 'true';
}
// Number
if (!isNaN(value)) {
debug('key ' + key + ' parsed as a Number');
return Number(value);
}
// Array
if (value.indexOf(',') !== -1) {
debug('key ' + key + ' parsed as an Array');
return value.split(',').map(parseKey);
}
return value;
}
module.exports = exports.default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWJ1ZyIsIkRlYnVnIiwiREVGQVVMVF9PUFRJT05TIiwiYXNzaWduVG9Qcm9jZXNzRW52Iiwib3ZlcnJpZGVQcm9jZXNzRW52IiwiZW52Iiwib3B0aW9ucyIsImVudk9wdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInBhcnNlS2V5IiwicHJvY2VzcyIsInZhbHVlIiwidG9TdHJpbmciLCJpbmRleE9mIiwibGFzdEluZGV4T2YiLCJsZW5ndGgiLCJzdWJzdHJpbmciLCJ0b0xvd2VyQ2FzZSIsImlzTmFOIiwiTnVtYmVyIiwic3BsaXQiLCJtYXAiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLFFBQVEsSUFBSUMsZUFBSixDQUFVLHdCQUFWLENBQWQ7O0FBRUEsSUFBTUMsa0JBQWtCO0FBQ3RCQyxzQkFBb0IsSUFERTtBQUV0QkMsc0JBQW9CO0FBRkUsQ0FBeEI7O2tCQUtlLFVBQUNDLEdBQUQsRUFBTUMsT0FBTixFQUFrQjtBQUMvQixNQUFNQyxhQUFhQyxPQUFPQyxNQUFQLENBQWMsRUFBZCxFQUFrQlAsZUFBbEIsRUFBbUNJLFdBQVcsRUFBOUMsQ0FBbkI7O0FBRUFFLFNBQU9FLElBQVAsQ0FBWUwsR0FBWixFQUFpQk0sT0FBakIsQ0FBeUIsZUFBTztBQUM5Qlgsb0JBQWNZLEdBQWQsa0NBQTZDUCxJQUFJTyxHQUFKLENBQTdDO0FBQ0EsUUFBSVAsSUFBSU8sR0FBSixDQUFKLEVBQWM7QUFDWlAsVUFBSU8sR0FBSixJQUFXQyxTQUFTUixJQUFJTyxHQUFKLENBQVQsRUFBbUJBLEdBQW5CLENBQVg7QUFDQVosc0JBQWNZLEdBQWQsaUNBQTRDUCxJQUFJTyxHQUFKLENBQTVDO0FBQ0EsVUFBSUwsV0FBV0osa0JBQVgsS0FBa0MsSUFBdEMsRUFBNEM7QUFDMUMsWUFBSUksV0FBV0gsa0JBQVgsS0FBa0MsSUFBdEMsRUFBNEM7QUFDMUNVLGtCQUFRVCxHQUFSLENBQVlPLEdBQVosSUFBbUJQLElBQUlPLEdBQUosS0FBWUUsUUFBUVQsR0FBUixDQUFZTyxHQUFaLENBQS9CO0FBQ0QsU0FGRCxNQUVPO0FBQ0xFLGtCQUFRVCxHQUFSLENBQVlPLEdBQVosSUFBbUJFLFFBQVFULEdBQVIsQ0FBWU8sR0FBWixLQUFvQlAsSUFBSU8sR0FBSixDQUF2QztBQUNEO0FBQ0Y7QUFDRjtBQUNGLEdBYkQ7O0FBZUEsU0FBT1AsR0FBUDtBQUVELEM7O0FBRUQsU0FBU1EsUUFBVCxDQUFrQkUsS0FBbEIsRUFBeUJILEdBQXpCLEVBQThCOztBQUU1QloseUJBQXFCWSxHQUFyQixvQkFBdUNHLEtBQXZDOztBQUVBO0FBQ0EsTUFBSUEsTUFBTUMsUUFBTixHQUFpQkMsT0FBakIsQ0FBeUIsR0FBekIsTUFBa0MsQ0FBbEMsSUFDQ0YsTUFBTUMsUUFBTixHQUFpQkUsV0FBakIsQ0FBNkIsR0FBN0IsTUFBc0NILE1BQU1DLFFBQU4sR0FBaUJHLE1BQWpCLEdBQTBCLENBRHJFLEVBQ3dFO0FBQ3RFbkIsbUJBQWFZLEdBQWI7QUFDQSxXQUFPRyxNQUFNQyxRQUFOLEdBQWlCSSxTQUFqQixDQUEyQixDQUEzQixFQUE4QkwsTUFBTUMsUUFBTixHQUFpQkcsTUFBakIsR0FBMEIsQ0FBeEQsQ0FBUDtBQUNEOztBQUVEO0FBQ0EsTUFBSUosTUFBTUMsUUFBTixHQUFpQkUsV0FBakIsQ0FBNkIsR0FBN0IsTUFBc0NILE1BQU1DLFFBQU4sR0FBaUJHLE1BQWpCLEdBQTBCLENBQWhFLElBQ0NKLE1BQU1DLFFBQU4sR0FBaUJDLE9BQWpCLENBQXlCLEdBQXpCLE1BQWtDLENBQUMsQ0FEeEMsRUFDMkM7QUFDekNqQixtQkFBYVksR0FBYjtBQUNBLFdBQU9HLE1BQU1DLFFBQU4sR0FBaUJJLFNBQWpCLENBQTJCLENBQTNCLEVBQThCTCxNQUFNQyxRQUFOLEdBQWlCRyxNQUFqQixHQUEwQixDQUF4RCxDQUFQO0FBQ0Q7O0FBRUQ7QUFDQSxNQUFJSixNQUFNQyxRQUFOLEdBQWlCSyxXQUFqQixPQUFtQyxNQUFuQyxJQUE2Q04sTUFBTUMsUUFBTixHQUFpQkssV0FBakIsT0FBbUMsT0FBcEYsRUFBNkY7QUFDM0ZyQixtQkFBYVksR0FBYjtBQUNBLFdBQU9HLE1BQU1DLFFBQU4sR0FBaUJLLFdBQWpCLE9BQW1DLE1BQTFDO0FBQ0Q7O0FBRUQ7QUFDQSxNQUFJLENBQUNDLE1BQU1QLEtBQU4sQ0FBTCxFQUFtQjtBQUNqQmYsbUJBQWFZLEdBQWI7QUFDQSxXQUFPVyxPQUFPUixLQUFQLENBQVA7QUFDRDs7QUFFRDtBQUNBLE1BQUlBLE1BQU1FLE9BQU4sQ0FBYyxHQUFkLE1BQXVCLENBQUMsQ0FBNUIsRUFBK0I7QUFDN0JqQixtQkFBYVksR0FBYjtBQUNBLFdBQU9HLE1BQU1TLEtBQU4sQ0FBWSxHQUFaLEVBQWlCQyxHQUFqQixDQUFxQlosUUFBckIsQ0FBUDtBQUNEOztBQUVELFNBQU9FLEtBQVA7QUFFRCIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IERlYnVnIGZyb20gJ2RlYnVnJztcblxuY29uc3QgZGVidWcgPSBuZXcgRGVidWcoJ2RvdGVudi1wYXJzZS12YXJpYWJsZXMnKTtcblxuY29uc3QgREVGQVVMVF9PUFRJT05TID0ge1xuICBhc3NpZ25Ub1Byb2Nlc3NFbnY6IHRydWUsXG4gIG92ZXJyaWRlUHJvY2Vzc0VudjogZmFsc2Vcbn07XG5cbmV4cG9ydCBkZWZhdWx0IChlbnYsIG9wdGlvbnMpID0+IHtcbiAgY29uc3QgZW52T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfT1BUSU9OUywgb3B0aW9ucyB8fCB7fSk7XG5cbiAgT2JqZWN0LmtleXMoZW52KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgZGVidWcoYGtleSBcIiR7a2V5fVwiIGJlZm9yZSB0eXBlIHdhcyAke3R5cGVvZiBlbnZba2V5XX1gKTtcbiAgICBpZiAoZW52W2tleV0pIHtcbiAgICAgIGVudltrZXldID0gcGFyc2VLZXkoZW52W2tleV0sIGtleSk7XG4gICAgICBkZWJ1Zyhga2V5IFwiJHtrZXl9XCIgYWZ0ZXIgdHlwZSB3YXMgJHt0eXBlb2YgZW52W2tleV19YCk7XG4gICAgICBpZiAoZW52T3B0aW9ucy5hc3NpZ25Ub1Byb2Nlc3NFbnYgPT09IHRydWUpIHtcbiAgICAgICAgaWYgKGVudk9wdGlvbnMub3ZlcnJpZGVQcm9jZXNzRW52ID09PSB0cnVlKSB7XG4gICAgICAgICAgcHJvY2Vzcy5lbnZba2V5XSA9IGVudltrZXldIHx8IHByb2Nlc3MuZW52W2tleV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJvY2Vzcy5lbnZba2V5XSA9IHByb2Nlc3MuZW52W2tleV0gfHwgZW52W2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBlbnY7XG5cbn07XG5cbmZ1bmN0aW9uIHBhcnNlS2V5KHZhbHVlLCBrZXkpIHtcblxuICBkZWJ1ZyhgcGFyc2luZyBrZXkgJHtrZXl9IHdpdGggdmFsdWUgJHt2YWx1ZX1gKTtcblxuICAvLyBpZiB0aGUgdmFsdWUgaXMgd3JhcHBlZCBpbiBiYWN0aWNrcyBlLmcuIChgdmFsdWVgKSB0aGVuIGp1c3QgcmV0dXJuIGl0cyB2YWx1ZVxuICBpZiAodmFsdWUudG9TdHJpbmcoKS5pbmRleE9mKCdgJykgPT09IDBcbiAgICAmJiB2YWx1ZS50b1N0cmluZygpLmxhc3RJbmRleE9mKCdgJykgPT09IHZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoIC0gMSkge1xuICAgIGRlYnVnKGBrZXkgJHtrZXl9IGlzIHdyYXBwZWQgaW4gYmFjdGlja3MgYW5kIHdpbGwgYmUgaWdub3JlZCBmcm9tIHBhcnNpbmdgKTtcbiAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMSwgdmFsdWUudG9TdHJpbmcoKS5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIC8vIGlmIHRoZSB2YWx1ZSBlbmRzIGluIGFuIGFzdGVyaXNrIHRoZW4ganVzdCByZXR1cm4gaXRzIHZhbHVlXG4gIGlmICh2YWx1ZS50b1N0cmluZygpLmxhc3RJbmRleE9mKCcqJykgPT09IHZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoIC0gMVxuICAgICYmIHZhbHVlLnRvU3RyaW5nKCkuaW5kZXhPZignLCcpID09PSAtMSkge1xuICAgIGRlYnVnKGBrZXkgJHtrZXl9IGVuZGVkIGluICogYW5kIHdpbGwgYmUgaWdub3JlZCBmcm9tIHBhcnNpbmdgKTtcbiAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgdmFsdWUudG9TdHJpbmcoKS5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIC8vIEJvb2xlYW5cbiAgaWYgKHZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnIHx8IHZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhbHNlJykge1xuICAgIGRlYnVnKGBrZXkgJHtrZXl9IHBhcnNlZCBhcyBhIEJvb2xlYW5gKTtcbiAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZSc7XG4gIH1cblxuICAvLyBOdW1iZXJcbiAgaWYgKCFpc05hTih2YWx1ZSkpIHtcbiAgICBkZWJ1Zyhga2V5ICR7a2V5fSBwYXJzZWQgYXMgYSBOdW1iZXJgKTtcbiAgICByZXR1cm4gTnVtYmVyKHZhbHVlKTtcbiAgfVxuXG4gIC8vIEFycmF5XG4gIGlmICh2YWx1ZS5pbmRleE9mKCcsJykgIT09IC0xKSB7XG4gICAgZGVidWcoYGtleSAke2tleX0gcGFyc2VkIGFzIGFuIEFycmF5YCk7XG4gICAgcmV0dXJuIHZhbHVlLnNwbGl0KCcsJykubWFwKHBhcnNlS2V5KTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcblxufVxuIl19