node-env-type
Version:
NodeJS Environment Type detection.
93 lines (92 loc) • 2.49 kB
JavaScript
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 });
;