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
import {env} from 'node-env-type';
if(env.isDev) {
}
const {env} = require('node-env-type');
if(env.isProd) {
}
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 when NODE_ENV
includes test
or tst
, but also when isUAT
, isSIT
or isCI
is set, because all those environments are essentially for testing.isProd
- set not only when NODE_ENV
includes prod
, but also when NODE_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 to false
.
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()) {
} else {
}
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';
if(env.refresh(otherVar)) {
} else {
}