1.0.1 • Published 5 years ago

node-toggles v1.0.1

Weekly downloads
1
License
MIT
Repository
-
Last release
5 years ago

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
  // 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;
  });
1.0.1

5 years ago

1.0.0

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago