README
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-type
Usage
- 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_ENV
includestest
ortst
, but also whenisUAT
,isSIT
orisCI
is set, because all those environments are essentially for testing.isProd
- set not only whenNODE_ENV
includesprod
, but also whenNODE_ENV
is not set at all, i.e. when environment is not configured, we should assume it to be production.- When
NODE_ENV
is 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
}