execution-environment

1.1.6 • Public • Published

execution-environment

Build Status devDependency Status devDependency Status

This module serves as a helper to expose the current execution environment by reading NODE_ENV environment variable.

Installation

$ npm install execution-environment --save

Example usage

When writing a module, you may want to add conditional logic based on the execution environment. By default, the module sets default values for the dev, test and prod environments:

Default Values

  1. isDev: ['dev', 'development']
  2. isTest: ['test']
  3. isProd: ['prod', 'production']
var environment = require('environment');

var Ajax = {
  get: function(method, path, params) {
    if (environment.isTest()) {
      throw new Error('Attempted to make a network call in the test environment. Shame!');
    }

    fetch(method, path, params);
  }
};

module.exports = Ajax;

When Ajax#get is executed in the test environment (defined by setting NODE_ENV=test), environment.isTest() will return true.

Additionally, custom environments and values can be registered on the environment module using registerEnvironments. The following code will register staging and canary environments, which will look for ['staging', 'stg'] and ['canary'] NODE_ENV values, respectively. Code that modifies the environment keys and values should live in a setup or config file rather modules that are require environment.

var environment = require('environment');

environment.registerEnvironments({
  staging: ['staging', 'stg'],
  canary: ['canary']
});

Usage with custom environments

var environment = require('environment');

var Tracking = {
  trackEvent: function(name, category, payload) {
    if (environment.staging() || environment.canary()) {
      return;
    }

    trackEsp(name, category, payload);
  }
};

module.exports = Tracking;

Readme

Keywords

none

Package Sidebar

Install

npm i execution-environment

Weekly Downloads

3

Version

1.1.6

License

Apache-2.0

Unpacked Size

4.02 kB

Total Files

3

Last publish

Collaborators

  • bhoomipatel6386
  • johncarlo
  • schreifels
  • wealthfront_admin