JSPM

execution-environment

1.1.6
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2
  • Score
    100M100P100Q51820F
  • License Apache-2.0

This module serves as a helper to expose the current execution environment.

Package Exports

  • execution-environment

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (execution-environment) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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;