UNPKG

env-dyn-config

Version:
39 lines 1.53 kB
"use strict"; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; exports.__esModule = true; var merge = require("deepmerge"); require("dotenv/config"); var env_names_type_1 = require("./env-names.type"); if (!Object.keys(env_names_type_1["default"]).length) { throw Error('env-names.type.ts should export an enum of names (see original file)'); } var DEFAULT = { environments: __spreadArray([], Object.keys(env_names_type_1["default"]), true) }; var functionGenerator = function (keys) { return keys.reduce(function (p, c) { var _a; return Object.assign(p, (_a = {}, _a[c] = c.toUpperCase(), _a)); }, {}); }; function init(options) { if (options === void 0) { options = DEFAULT; } var environments = functionGenerator(options.environments); var ENV = Object.keys(environments).find(function (k) { return k === process.env.NODE_ENV; }) || Object.keys(env_names_type_1["default"])[0]; function combine(base, specific) { var config = specific[environments[ENV]] || {}; return merge(base, config); } return { environments: environments, ENV: ENV, combine: combine }; } exports["default"] = init; //# sourceMappingURL=index.js.map