UNPKG

node-env-type

Version:
93 lines (92 loc) 2.49 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.env = void 0; var flags = { /** * Development Environment. */ isDev: false, /** * User Acceptance Testing. */ isUAT: false, /** * System Integration Testing. */ isSIT: false, /** * Continuous Integration. */ isCI: false, /** * General Testing Environment (includes UAT, SIT and CI) */ isTest: false, /** * Production Environment. * * This is the default when environment is not set. */ isProd: true }; var searchMap = { isDev: /dev/i, isUAT: /uat/i, isSIT: /sit/i, isCI: /ci/i, isTest: /test|tst/i, isProd: /prod/i }; function setActiveFlag(activeFlag) { var keys = Object.keys(flags); for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { var k = keys_1[_i]; flags[k] = k === activeFlag; } flags.isTest = flags.isTest || flags.isUAT || flags.isSIT || flags.isCI; } /** * Refreshes all flags from `NODE_ENV` variable. * * @param otherVariable * Optional override, to use an alternative variable. */ function refresh(otherVariable) { var s = otherVariable || process.env.NODE_ENV; if (!s) { setActiveFlag('isProd'); return true; } var found = false; var keys = Object.keys(flags); for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) { var key = keys_2[_i]; if (s.search(searchMap[key]) >= 0) { found = true; setActiveFlag(key); break; } } if (!found) { // the environment is set to something we cannot recognize; // set all flags to false: for (var _a = 0, keys_3 = keys; _a < keys_3.length; _a++) { var k = keys_3[_a]; flags[k] = false; } } return found; } refresh(); // set all flags from start; exports.env = __assign(__assign({}, flags), { refresh: refresh });