node-env-type v0.0.8
node-env-type
Easy detection of NodeJS environment type from NODE_ENV variable.
This library is 100% compatible with the standard development/test/production approach,
with a friendlier interface, while also supporting a more verbose syntax, to allow for
a flexible environment configuration.
Installing
$ npm i node-env-typeUsage
- In TypeScript:
import {env} from 'node-env-type';
if(env.isDev) {
// this is a DEV environment
}- In JavaScript:
const {env} = require('node-env-type');
if(env.isProd) {
// this is a PROD environment
}Environment Flags
Table below explains available flags and when they are set.
| Flag | Environment | Condition |
|---|---|---|
isDev | Development | NODE_ENV includes dev (case-insensitive) |
isUAT | User Acceptance Testing | NODE_ENV includes uat (case-insensitive) |
isSIT | System Integration Testing | NODE_ENV includes sit (case-insensitive) |
isCI | Continuous Integration | NODE_ENV includes ci (case-insensitive) |
isTest | General Testing | NODE_ENV includes any of: test, tst, uat, sit, ci (case-insensitive) |
isProd | Production | NODE_ENV includes prod (case-insensitive), or not set at all. |
Flags are tested in the order as shown in the table, to use only the first one found, in case there's a conflict.
Special Cases
isTest- set not only whenNODE_ENVincludestestortst, but also whenisUAT,isSITorisCIis set, because all those environments are essentially for testing.isProd- set not only whenNODE_ENVincludesprod, but also whenNODE_ENVis not set at all, i.e. when environment is not configured, we should assume it to be production.- When
NODE_ENVis set to something we cannot recognize at all, each flag is set tofalse.
API
The only API available other than the environment flags is function refresh, in case you want
to refresh flags from the environment without restarting the process.
import {env} from 'node-env-type';
if(env.refresh()) {
// successfully recognized the environment;
// each flag updated from NODE_ENV
} else {
// failed to recognize the environment;
// each flag is set to false
} And if, for some reasons, you decide to read configuration from a different place, rather than
the standard NODE_ENV, you can pass such optional string to the function:
const otherVar = 'dev1.pc'; // just some other value
if(env.refresh(otherVar)) {
// successfully recognized the environment;
// each flag updated from otherVar
} else {
// failed to recognize the environment;
// each flag is set to false
}