diff --git a/dist/index.d.ts b/dist/index.d.ts index a5a8c1f..3fdece9 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -2,5 +2,5 @@ export declare class Qenv { requiredEnvVars: string[]; availableEnvVars: string[]; missingEnvVars: string[]; - constructor(basePathArg: string, envYmlPathArg: any); + constructor(basePathArg: string, envYmlPathArg: any, failOnMissing?: boolean); } diff --git a/dist/index.js b/dist/index.js index b3a7c25..96aaebd 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,13 +1,20 @@ "use strict"; var plugins = require("./qenv.plugins"); var Qenv = (function () { - function Qenv(basePathArg, envYmlPathArg) { + function Qenv(basePathArg, envYmlPathArg, failOnMissing) { if (basePathArg === void 0) { basePathArg = process.cwd(); } + if (failOnMissing === void 0) { failOnMissing = true; } this.requiredEnvVars = getRequiredEnvVars(basePathArg); this.availableEnvVars = getAvailableEnvVars(this.requiredEnvVars, envYmlPathArg); this.missingEnvVars = getMissingEnvVars(this.requiredEnvVars, this.availableEnvVars); - for (var keyArg in this.missingEnvVars) { - plugins.beautylog.warn(this.missingEnvVars[keyArg] + " is required, but missing!"); + //handle missing variables + if (this.missingEnvVars.length > 0) { + plugins.beautylog.error("Some Env variables could not be resolved:"); + console.log(this.missingEnvVars); + if (failOnMissing) { + plugins.beautylog.error("Exiting!"); + process.exit(1); + } } } return Qenv; @@ -31,6 +38,7 @@ var getAvailableEnvVars = function (requiredEnvVarsArg, envYmlPathArg) { envYml = plugins.smartfile.local.toObjectSync(envYmlPathArg); } catch (err) { + plugins.beautylog.log("env file couldn't be found at " + envYmlPathArg); envYml = {}; } for (var keyArg in requiredEnvVarsArg) { @@ -49,4 +57,4 @@ var getMissingEnvVars = function (requiredEnvVarsArray, availableEnvVarsArray) { return plugins.lodash.difference(requiredEnvVarsArray, availableEnvVarsArray); }; -//# sourceMappingURL=data:application/json;charset=utf8;base64,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QyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFBO0FBRUQsSUFBSSxpQkFBaUIsR0FBRyxVQUFDLG9CQUE2QixFQUFDLHFCQUE4QjtJQUNqRixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsb0JBQW9CLEVBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNqRixDQUFDLENBQUEiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL3FlbnYucGx1Z2luc1wiO1xuXG5leHBvcnQgY2xhc3MgUWVudiB7XG4gICAgcmVxdWlyZWRFbnZWYXJzOnN0cmluZ1tdO1xuICAgIGF2YWlsYWJsZUVudlZhcnM6c3RyaW5nW107XG4gICAgbWlzc2luZ0VudlZhcnM6c3RyaW5nW107XG4gICAgY29uc3RydWN0b3IoYmFzZVBhdGhBcmcgPSBwcm9jZXNzLmN3ZCgpLGVudlltbFBhdGhBcmcpe1xuICAgICAgICB0aGlzLnJlcXVpcmVkRW52VmFycyA9IGdldFJlcXVpcmVkRW52VmFycyhiYXNlUGF0aEFyZyk7XG4gICAgICAgIHRoaXMuYXZhaWxhYmxlRW52VmFycyA9IGdldEF2YWlsYWJsZUVudlZhcnModGhpcy5yZXF1aXJlZEVudlZhcnMsZW52WW1sUGF0aEFyZyk7XG4gICAgICAgIHRoaXMubWlzc2luZ0VudlZhcnMgPSBnZXRNaXNzaW5nRW52VmFycyh0aGlzLnJlcXVpcmVkRW52VmFycyx0aGlzLmF2YWlsYWJsZUVudlZhcnMpO1xuICAgICAgICBmb3IobGV0IGtleUFyZyBpbiB0aGlzLm1pc3NpbmdFbnZWYXJzKXtcbiAgICAgICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLndhcm4odGhpcy5taXNzaW5nRW52VmFyc1trZXlBcmddICsgXCIgaXMgcmVxdWlyZWQsIGJ1dCBtaXNzaW5nIVwiKVxuICAgICAgICB9XG4gICAgfVxufTtcblxubGV0IGdldFJlcXVpcmVkRW52VmFycyA9IChwYXRoQXJnOnN0cmluZyk6c3RyaW5nW10gPT4ge1xuICAgIGxldCByZXN1bHQ6c3RyaW5nW10gPSBbXTtcbiAgICBsZXQgcWVudkZpbGVQYXRoID0gcGx1Z2lucy5wYXRoLmpvaW4ocGF0aEFyZyxcInFlbnYueW1sXCIpO1xuICAgIGxldCBxZW52RmlsZSA9IHBsdWdpbnMuc21hcnRmaWxlLmxvY2FsLnRvT2JqZWN0U3luYyhxZW52RmlsZVBhdGgpO1xuICAgIGZvcihsZXQga2V5QXJnIGluIHFlbnZGaWxlLnZhcnMpe1xuICAgICAgICByZXN1bHQucHVzaChxZW52RmlsZS52YXJzW2tleUFyZ10pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5sZXQgZ2V0QXZhaWxhYmxlRW52VmFycyA9IChyZXF1aXJlZEVudlZhcnNBcmc6c3RyaW5nW10sZW52WW1sUGF0aEFyZzpzdHJpbmcpOnN0cmluZ1tdID0+IHtcbiAgICBsZXQgcmVzdWx0ID0gW107XG4gICAgZW52WW1sUGF0aEFyZyA9IHBsdWdpbnMucGF0aC5qb2luKGVudlltbFBhdGhBcmcsXCJlbnYueW1sXCIpXG4gICAgbGV0IGVudlltbDtcbiAgICB0cnkge1xuICAgICAgICBlbnZZbWwgPSBwbHVnaW5zLnNtYXJ0ZmlsZS5sb2NhbC50b09iamVjdFN5bmMoZW52WW1sUGF0aEFyZyk7XG4gICAgfVxuICAgIGNhdGNoKGVycil7XG4gICAgICAgIGVudlltbCA9IHt9O1xuICAgIH1cbiAgICBmb3IobGV0IGtleUFyZyBpbiByZXF1aXJlZEVudlZhcnNBcmcpe1xuICAgICAgICBsZXQgcmVxdWlyZWRFbnZWYXI6c3RyaW5nID0gcmVxdWlyZWRFbnZWYXJzQXJnW2tleUFyZ107XG4gICAgICAgIGlmKHByb2Nlc3MuZW52W3JlcXVpcmVkRW52VmFyXSl7XG4gICAgICAgICAgICByZXN1bHQucHVzaChyZXF1aXJlZEVudlZhcik7XG4gICAgICAgIH0gZWxzZSBpZihlbnZZbWwuaGFzT3duUHJvcGVydHkocmVxdWlyZWRFbnZWYXIpKXtcbiAgICAgICAgICAgIHByb2Nlc3MuZW52W3JlcXVpcmVkRW52VmFyXSA9IGVudlltbFtyZXF1aXJlZEVudlZhcl07XG4gICAgICAgICAgICByZXN1bHQucHVzaChyZXF1aXJlZEVudlZhcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxubGV0IGdldE1pc3NpbmdFbnZWYXJzID0gKHJlcXVpcmVkRW52VmFyc0FycmF5OnN0cmluZ1tdLGF2YWlsYWJsZUVudlZhcnNBcnJheTpzdHJpbmdbXSkgPT4ge1xuICAgIHJldHVybiBwbHVnaW5zLmxvZGFzaC5kaWZmZXJlbmNlKHJlcXVpcmVkRW52VmFyc0FycmF5LGF2YWlsYWJsZUVudlZhcnNBcnJheSk7XG59Il19 +//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUMsQ0FBQSxDQUFDO1lBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUEsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUEsQ0FBQztZQUM3QyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNyRCxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUE7QUFFRCxJQUFJLGlCQUFpQixHQUFHLFVBQUMsb0JBQTZCLEVBQUMscUJBQThCO0lBQ2pGLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsRUFBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ2pGLENBQUMsQ0FBQSIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vcWVudi5wbHVnaW5zXCI7XG5cbmV4cG9ydCBjbGFzcyBRZW52IHtcbiAgICByZXF1aXJlZEVudlZhcnM6c3RyaW5nW107XG4gICAgYXZhaWxhYmxlRW52VmFyczpzdHJpbmdbXTtcbiAgICBtaXNzaW5nRW52VmFyczpzdHJpbmdbXTtcbiAgICBjb25zdHJ1Y3RvcihiYXNlUGF0aEFyZyA9IHByb2Nlc3MuY3dkKCksZW52WW1sUGF0aEFyZyxmYWlsT25NaXNzaW5nID0gdHJ1ZSl7XG4gICAgICAgIHRoaXMucmVxdWlyZWRFbnZWYXJzID0gZ2V0UmVxdWlyZWRFbnZWYXJzKGJhc2VQYXRoQXJnKTtcbiAgICAgICAgdGhpcy5hdmFpbGFibGVFbnZWYXJzID0gZ2V0QXZhaWxhYmxlRW52VmFycyh0aGlzLnJlcXVpcmVkRW52VmFycyxlbnZZbWxQYXRoQXJnKTtcbiAgICAgICAgdGhpcy5taXNzaW5nRW52VmFycyA9IGdldE1pc3NpbmdFbnZWYXJzKHRoaXMucmVxdWlyZWRFbnZWYXJzLHRoaXMuYXZhaWxhYmxlRW52VmFycyk7XG4gICAgICAgIFxuICAgICAgICAvL2hhbmRsZSBtaXNzaW5nIHZhcmlhYmxlc1xuICAgICAgICBpZiAodGhpcy5taXNzaW5nRW52VmFycy5sZW5ndGggPiAwKXtcbiAgICAgICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLmVycm9yKFwiU29tZSBFbnYgdmFyaWFibGVzIGNvdWxkIG5vdCBiZSByZXNvbHZlZDpcIilcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMubWlzc2luZ0VudlZhcnMpO1xuICAgICAgICAgICAgaWYoZmFpbE9uTWlzc2luZyl7XG4gICAgICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuZXJyb3IoXCJFeGl0aW5nIVwiKVxuICAgICAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmxldCBnZXRSZXF1aXJlZEVudlZhcnMgPSAocGF0aEFyZzpzdHJpbmcpOnN0cmluZ1tdID0+IHtcbiAgICBsZXQgcmVzdWx0OnN0cmluZ1tdID0gW107XG4gICAgbGV0IHFlbnZGaWxlUGF0aCA9IHBsdWdpbnMucGF0aC5qb2luKHBhdGhBcmcsXCJxZW52LnltbFwiKTtcbiAgICBsZXQgcWVudkZpbGUgPSBwbHVnaW5zLnNtYXJ0ZmlsZS5sb2NhbC50b09iamVjdFN5bmMocWVudkZpbGVQYXRoKTtcbiAgICBmb3IobGV0IGtleUFyZyBpbiBxZW52RmlsZS52YXJzKXtcbiAgICAgICAgcmVzdWx0LnB1c2gocWVudkZpbGUudmFyc1trZXlBcmddKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxubGV0IGdldEF2YWlsYWJsZUVudlZhcnMgPSAocmVxdWlyZWRFbnZWYXJzQXJnOnN0cmluZ1tdLGVudlltbFBhdGhBcmc6c3RyaW5nKTpzdHJpbmdbXSA9PiB7XG4gICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgIGVudlltbFBhdGhBcmcgPSBwbHVnaW5zLnBhdGguam9pbihlbnZZbWxQYXRoQXJnLFwiZW52LnltbFwiKVxuICAgIGxldCBlbnZZbWw7XG4gICAgdHJ5IHtcbiAgICAgICAgZW52WW1sID0gcGx1Z2lucy5zbWFydGZpbGUubG9jYWwudG9PYmplY3RTeW5jKGVudlltbFBhdGhBcmcpO1xuICAgIH1cbiAgICBjYXRjaChlcnIpe1xuICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5sb2coXCJlbnYgZmlsZSBjb3VsZG4ndCBiZSBmb3VuZCBhdCBcIiArIGVudlltbFBhdGhBcmcpXG4gICAgICAgIGVudlltbCA9IHt9O1xuICAgIH1cbiAgICBmb3IobGV0IGtleUFyZyBpbiByZXF1aXJlZEVudlZhcnNBcmcpe1xuICAgICAgICBsZXQgcmVxdWlyZWRFbnZWYXI6c3RyaW5nID0gcmVxdWlyZWRFbnZWYXJzQXJnW2tleUFyZ107XG4gICAgICAgIGlmKHByb2Nlc3MuZW52W3JlcXVpcmVkRW52VmFyXSl7XG4gICAgICAgICAgICByZXN1bHQucHVzaChyZXF1aXJlZEVudlZhcik7XG4gICAgICAgIH0gZWxzZSBpZihlbnZZbWwuaGFzT3duUHJvcGVydHkocmVxdWlyZWRFbnZWYXIpKXtcbiAgICAgICAgICAgIHByb2Nlc3MuZW52W3JlcXVpcmVkRW52VmFyXSA9IGVudlltbFtyZXF1aXJlZEVudlZhcl07XG4gICAgICAgICAgICByZXN1bHQucHVzaChyZXF1aXJlZEVudlZhcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxubGV0IGdldE1pc3NpbmdFbnZWYXJzID0gKHJlcXVpcmVkRW52VmFyc0FycmF5OnN0cmluZ1tdLGF2YWlsYWJsZUVudlZhcnNBcnJheTpzdHJpbmdbXSkgPT4ge1xuICAgIHJldHVybiBwbHVnaW5zLmxvZGFzaC5kaWZmZXJlbmNlKHJlcXVpcmVkRW52VmFyc0FycmF5LGF2YWlsYWJsZUVudlZhcnNBcnJheSk7XG59Il19 diff --git a/test/test.js b/test/test.js index 02cbe1b..9b85beb 100644 --- a/test/test.js +++ b/test/test.js @@ -10,7 +10,7 @@ process.env["key1"] = "original"; var qenvTestObject; describe("Qenv class", function () { it("should create a new class", function () { - qenvTestObject = new index_1.Qenv(process.cwd(), process.cwd()); + qenvTestObject = new index_1.Qenv(process.cwd(), process.cwd(), false); }); it("key1 should be not be overwritten since it is already present", function () { process.env.key1.should.equal("original"); @@ -20,4 +20,4 @@ describe("Qenv class", function () { }); }); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sY0FBYyxDQUFDLENBQUE7QUFDdEIsSUFBWSxJQUFJLFdBQU0sTUFBTSxDQUFDLENBQUE7QUFDN0IsUUFBTyxRQUFRLENBQUMsQ0FBQTtBQUNoQixzQkFBbUIsZUFBZSxDQUFDLENBQUE7QUFFbkMsT0FBTyxDQUFDLEdBQUcsR0FBRztJQUNWLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxXQUFXLENBQUMsQ0FBQztBQUM1QyxDQUFDLENBQUE7QUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQTtBQUVoQyxJQUFJLGNBQW1CLENBQUM7QUFDeEIsUUFBUSxDQUFDLFlBQVksRUFBQztJQUNsQixFQUFFLENBQUMsMkJBQTJCLEVBQUM7UUFDM0IsY0FBYyxHQUFHLElBQUksWUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDLENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQywrREFBK0QsRUFBQztRQUMvRCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0gsRUFBRSxDQUFDLDhCQUE4QixFQUFDO1FBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0MsQ0FBQyxDQUFDLENBQUE7QUFFTixDQUFDLENBQUMsQ0FBQyIsImZpbGUiOiJ0ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy10ZXN0XCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgXCJzaG91bGRcIjtcbmltcG9ydCB7UWVudn0gZnJvbSBcIi4uL2Rpc3QvaW5kZXhcIjtcblxucHJvY2Vzcy5jd2QgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHBhdGguam9pbihfX2Rpcm5hbWUsXCIuL2Fzc2V0cy9cIik7XG59XG5cbnByb2Nlc3MuZW52W1wia2V5MVwiXSA9IFwib3JpZ2luYWxcIlxuXG5sZXQgcWVudlRlc3RPYmplY3Q6UWVudjtcbmRlc2NyaWJlKFwiUWVudiBjbGFzc1wiLGZ1bmN0aW9uKCl7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGEgbmV3IGNsYXNzXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgcWVudlRlc3RPYmplY3QgPSBuZXcgUWVudihwcm9jZXNzLmN3ZCgpLHByb2Nlc3MuY3dkKCkpO1xuICAgIH0pO1xuICAgIGl0KFwia2V5MSBzaG91bGQgYmUgbm90IGJlIG92ZXJ3cml0dGVuIHNpbmNlIGl0IGlzIGFscmVhZHkgcHJlc2VudFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgIHByb2Nlc3MuZW52LmtleTEuc2hvdWxkLmVxdWFsKFwib3JpZ2luYWxcIik7XG4gICAgfSk7XG4gICAgaXQoXCJrZXkyIHNob3VsZCBiZSByZWFkIGZyb20gWW1sXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgcHJvY2Vzcy5lbnYua2V5Mi5zaG91bGQuZXF1YWwoXCJmcm9tWW1sXCIpO1xuICAgIH0pXG5cbn0pOyJdfQ== +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sY0FBYyxDQUFDLENBQUE7QUFDdEIsSUFBWSxJQUFJLFdBQU0sTUFBTSxDQUFDLENBQUE7QUFDN0IsUUFBTyxRQUFRLENBQUMsQ0FBQTtBQUNoQixzQkFBbUIsZUFBZSxDQUFDLENBQUE7QUFFbkMsT0FBTyxDQUFDLEdBQUcsR0FBRztJQUNWLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxXQUFXLENBQUMsQ0FBQztBQUM1QyxDQUFDLENBQUE7QUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQTtBQUVoQyxJQUFJLGNBQW1CLENBQUM7QUFDeEIsUUFBUSxDQUFDLFlBQVksRUFBQztJQUNsQixFQUFFLENBQUMsMkJBQTJCLEVBQUM7UUFDM0IsY0FBYyxHQUFHLElBQUksWUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsQ0FBQyxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMsK0RBQStELEVBQUM7UUFDL0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQyw4QkFBOEIsRUFBQztRQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLENBQUMsQ0FBQyxDQUFBO0FBRU4sQ0FBQyxDQUFDLENBQUMiLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtdGVzdFwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IFwic2hvdWxkXCI7XG5pbXBvcnQge1FlbnZ9IGZyb20gXCIuLi9kaXN0L2luZGV4XCI7XG5cbnByb2Nlc3MuY3dkID0gKCkgPT4ge1xuICAgIHJldHVybiBwYXRoLmpvaW4oX19kaXJuYW1lLFwiLi9hc3NldHMvXCIpO1xufVxuXG5wcm9jZXNzLmVudltcImtleTFcIl0gPSBcIm9yaWdpbmFsXCJcblxubGV0IHFlbnZUZXN0T2JqZWN0OlFlbnY7XG5kZXNjcmliZShcIlFlbnYgY2xhc3NcIixmdW5jdGlvbigpe1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBhIG5ldyBjbGFzc1wiLGZ1bmN0aW9uKCl7XG4gICAgICAgIHFlbnZUZXN0T2JqZWN0ID0gbmV3IFFlbnYocHJvY2Vzcy5jd2QoKSxwcm9jZXNzLmN3ZCgpLGZhbHNlKTtcbiAgICB9KTtcbiAgICBpdChcImtleTEgc2hvdWxkIGJlIG5vdCBiZSBvdmVyd3JpdHRlbiBzaW5jZSBpdCBpcyBhbHJlYWR5IHByZXNlbnRcIixmdW5jdGlvbigpe1xuICAgICAgICBwcm9jZXNzLmVudi5rZXkxLnNob3VsZC5lcXVhbChcIm9yaWdpbmFsXCIpO1xuICAgIH0pO1xuICAgIGl0KFwia2V5MiBzaG91bGQgYmUgcmVhZCBmcm9tIFltbFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgIHByb2Nlc3MuZW52LmtleTIuc2hvdWxkLmVxdWFsKFwiZnJvbVltbFwiKTtcbiAgICB9KVxuXG59KTsiXX0= diff --git a/test/test.ts b/test/test.ts index dd2668f..3cc0d0a 100644 --- a/test/test.ts +++ b/test/test.ts @@ -12,7 +12,7 @@ process.env["key1"] = "original" let qenvTestObject:Qenv; describe("Qenv class",function(){ it("should create a new class",function(){ - qenvTestObject = new Qenv(process.cwd(),process.cwd()); + qenvTestObject = new Qenv(process.cwd(),process.cwd(),false); }); it("key1 should be not be overwritten since it is already present",function(){ process.env.key1.should.equal("original"); diff --git a/ts/index.ts b/ts/index.ts index b00b519..583ca2f 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -4,12 +4,19 @@ export class Qenv { requiredEnvVars:string[]; availableEnvVars:string[]; missingEnvVars:string[]; - constructor(basePathArg = process.cwd(),envYmlPathArg){ + constructor(basePathArg = process.cwd(),envYmlPathArg,failOnMissing = true){ this.requiredEnvVars = getRequiredEnvVars(basePathArg); this.availableEnvVars = getAvailableEnvVars(this.requiredEnvVars,envYmlPathArg); this.missingEnvVars = getMissingEnvVars(this.requiredEnvVars,this.availableEnvVars); - for(let keyArg in this.missingEnvVars){ - plugins.beautylog.warn(this.missingEnvVars[keyArg] + " is required, but missing!") + + //handle missing variables + if (this.missingEnvVars.length > 0){ + plugins.beautylog.error("Some Env variables could not be resolved:") + console.log(this.missingEnvVars); + if(failOnMissing){ + plugins.beautylog.error("Exiting!") + process.exit(1); + } } } }; @@ -32,6 +39,7 @@ let getAvailableEnvVars = (requiredEnvVarsArg:string[],envYmlPathArg:string):str envYml = plugins.smartfile.local.toObjectSync(envYmlPathArg); } catch(err){ + plugins.beautylog.log("env file couldn't be found at " + envYmlPathArg) envYml = {}; } for(let keyArg in requiredEnvVarsArg){