qenv/dist/index.js

53 lines
6.9 KiB
JavaScript
Raw Normal View History

2016-06-20 05:06:15 +00:00
"use strict";
var plugins = require("./qenv.plugins");
2016-06-20 08:45:43 +00:00
var Qenv = (function () {
function Qenv(basePathArg, envYmlPathArg) {
2016-06-20 05:06:15 +00:00
if (basePathArg === void 0) { basePathArg = process.cwd(); }
this.requiredEnvVars = getRequiredEnvVars(basePathArg);
this.availableEnvVars = getAvailableEnvVars(this.requiredEnvVars, envYmlPathArg);
this.missingEnvVars = getMissingEnvVars(this.requiredEnvVars, this.availableEnvVars);
2016-06-20 08:45:43 +00:00
for (var keyArg in this.missingEnvVars) {
plugins.beautylog.warn(this.missingEnvVars[keyArg] + " is required, but missing!");
}
2016-06-20 05:06:15 +00:00
}
2016-06-20 08:45:43 +00:00
return Qenv;
2016-06-20 05:06:15 +00:00
}());
2016-06-20 08:45:43 +00:00
exports.Qenv = Qenv;
2016-06-20 05:06:15 +00:00
;
var getRequiredEnvVars = function (pathArg) {
var result = [];
var qenvFilePath = plugins.path.join(pathArg, "qenv.yml");
var qenvFile = plugins.smartfile.local.toObjectSync(qenvFilePath);
for (var keyArg in qenvFile.vars) {
result.push(qenvFile.vars[keyArg]);
}
return result;
};
var getAvailableEnvVars = function (requiredEnvVarsArg, envYmlPathArg) {
var result = [];
2016-06-20 08:45:43 +00:00
envYmlPathArg = plugins.path.join(envYmlPathArg, "env.yml");
2016-06-20 05:06:15 +00:00
var envYml;
try {
envYml = plugins.smartfile.local.toObjectSync(envYmlPathArg);
}
catch (err) {
envYml = {};
}
for (var keyArg in requiredEnvVarsArg) {
2016-06-20 08:45:43 +00:00
var requiredEnvVar = requiredEnvVarsArg[keyArg];
if (process.env[requiredEnvVar]) {
result.push(requiredEnvVar);
2016-06-20 05:06:15 +00:00
}
2016-06-20 08:45:43 +00:00
else if (envYml.hasOwnProperty(requiredEnvVar)) {
process.env[requiredEnvVar] = envYml[requiredEnvVar];
result.push(requiredEnvVar);
2016-06-20 05:06:15 +00:00
}
}
return result;
};
var getMissingEnvVars = function (requiredEnvVarsArray, availableEnvVarsArray) {
return plugins.lodash.difference(requiredEnvVarsArray, availableEnvVarsArray);
};
2016-06-19 15:33:54 +00:00
2016-06-20 08:45:43 +00:00
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFBO0FBRUQsSUFBSSxpQkFBaUIsR0FBRyxVQUFDLG9CQUE2QixFQUFDLHFCQUE4QjtJQUNqRixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsb0JBQW9CLEVBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNqRixDQUFDLENBQUEiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL3FlbnYucGx1Z2luc1wiO1xuXG5leHBvcnQgY2xhc3MgUWVudiB7XG4gICAgcmVxdWlyZWRFbnZWYXJzOnN0cmluZ1tdO1xuICAgIGF2YWlsYWJsZUVudlZhcnM6c3RyaW5nW107XG4gICAgbWlzc2luZ0VudlZhcnM6c3RyaW5nW107XG4gICAgY29uc3RydWN0b3IoYmFzZVBhdGhBcmcgPSBwcm9jZXNzLmN3ZCgpLGVudlltbFBhdGhBcmcpe1xuICAgICAgICB0aGlzLnJlcXVpcmVkRW52VmFycyA9IGdldFJlcXVpcmVkRW52VmFycyhiYXNlUGF0aEFyZyk7XG4gICAgICAgIHRoaXMuYXZhaWxhYmxlRW52VmFycyA9IGdldEF2YWlsYWJsZUVudlZhcnModGhpcy5yZXF1aXJlZEVudlZhcnMsZW52WW1sUGF0aEFyZyk7XG4gICAgICAgIHRoaXMubWlzc2luZ0VudlZhcnMgPSBnZXRNaXNzaW5nRW52VmFycyh0aGlzLnJlcXVpcmVkRW52VmFycyx0aGlzLmF2YWlsYWJsZUVudlZhcnMpO1xuICAgICAgICBmb3IobGV0IGtleUFyZyBpbiB0aGlzLm1pc3NpbmdFbnZWYXJzKXtcbiAgICAgICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLndhcm4odGhpcy5taXNzaW5nRW52VmFyc1trZXlBcmddICsgXCIgaXMgcmVxdWlyZWQsIGJ1dCBtaXNzaW5nIVwiKVxuICAgICAgICB9XG4gICAgfVxufTtcblxubGV0IGdldFJlcXVpcmVkRW52VmFycyA9IChwYXRoQXJnOnN0cmluZyk6c3RyaW5nW10gPT4ge1xuICAgIGxldCByZXN1bHQ6c3RyaW5nW10gPSBbXTtcbiAgICBsZXQgcWVudkZpbGVQYXRoID0gcGx1Z2lucy5wYXRoLmpvaW4ocGF0aEFyZyxcInFlbnYueW1sXCIpO1xuICAgIGxldCBxZW52RmlsZSA9IHBsdWdpbnMuc21hcnRmaWxlLmxvY2FsLnRvT2JqZWN0U3luYyhxZW52RmlsZVBhdGgpO1xuICAgIGZvcihsZXQga2V5QXJnIGluIHFlbnZGaWxlLnZhcnMpe1xuICAgICAgICByZXN1bHQucHVzaChxZW52RmlsZS52YXJzW2tleUFyZ10pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5sZXQgZ2V0QXZhaWxhYmxlRW52VmFycyA9IChyZXF1aXJlZEVu