Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

node-toggles

rafaelmotaalves31MIT1.0.1TypeScript support: included

A helper to using feature toggles in NodeJS

readme

node-toggles

This is a helper to work with feature toggles in NodeJS. It defines multiple constructors to help controlling the feature toggles.

Install

npm install --save node-toggles

Usage

  • Creating a feature toggles object:
  // require the toggles module
  const toggles = require("node-toggles");

  // creates a toggles object with no features activated
  const emptyFeatureToggles = toggles.empty();

  const activeFeaturesArray = [
    { code: "example_feature", status: true },
    { code: "test_feature", status: false } 
  ]
  // creates a toggles object with the passed features
  const arrayFeatureToggles = toggles.fromArray(activeFeatures);

  // creates a toggles object with the environment variables that ends with the "feature" sufix
  const envFeatureToggles = toggles.fromEnv();

  const activeFeaturesJson = {
    "example_feature": true,
    "test_feature": false
  };
  // creates a toggles object with the features defined in the json
  const jsonFeatureToggles = toggles.fromJson(activeFeaturesJson);
  • To define a toggled feature you can:
  // require the toggles module
  const toggles = require("node-toggles");

  const featureToggles = toggles.fromJson({
    "example_feature": true
  });

  // check if the toggle is active
  if (featureToggles.active ("example_feature")) {
    // feature code
  } else {
    // alternative code
  }

  // use the "feature" function
  featureToggles.feature("example_feature", () => {
    // feature code
  });

  // optionally you can pass an alternative function
  featureToggles.feature("example_feature", () => {
    // feature code
  }, () => {
    // alternative code
  });
  • You can also set features during execution `js // require the toggles module const toggles = require("node-toggles");

    const featureToggles = toggles.empty();

    // you can directly pass the feature toggle status featureToggles.set("example_feature", true);

    // or pass an avaliation function, to decide wheter the feature will be executed exery feature toggle test featureToggles.set("example_feature", () => { return 1 + 1 === 2; });

`