@blaze/toggles

Open Source UI Toolkit - Feature Toggles

Usage no npm install needed!

<script type="module">
  import blazeToggles from 'https://cdn.skypack.dev/@blaze/toggles';
</script>

README

Blaze Feature Toggles

Blaze is a framework-free open source UI toolkit. It provides great structure for building websites quickly with a scalable and maintainable foundation.

https://www.blazeui.com**

ci build status

Using the Toggles

Add the following to your <head></head>.

<script src="https://unpkg.com/@blaze/toggles@x.x.x/dist/collection/config.js"></script>
<script src="https://unpkg.com/@blaze/toggles@x.x.x/dist/toggles.js"></script>

The x.x.x is the specific version of the library, you should use specifc versions to prevent against breaking changes.

Config

Next add some feature toggle config, e.g.

FeatureToggles.set({
  welcomeMessage: true,
  loginPage: {
    rememberMe: 'alpha',
  },
});

You can call FeatureToggles.set({...}) at anytime to update config. Everytime FeatureToggles.set is called it raises a featureToggleChange event that you can hook into.

set also merges the config with the already set config.

Config values can be either booleans, strings or functions.

Promises are supported.

e.g. the below to toggle the feature after 2 seconds once the promise has resolved.

FeatureToggles.set({
  welcomeMessage: true,
  loginPage: {
    rememberMe: () => new Promise((resolve) => setTimeout(() => resolve('alpha'), 2000)),
  },
});

HTML

<feature-toggle feature="welcomeMessage">
  content will be VISIBLE
</feature-toggle>

<feature-toggle feature="loginPage.rememberMe" variant="alpha">
  content will be VISIBLE
</feature-toggle>

<feature-toggle feature="loginPage.rememberMe" variant="beta">
  content will be HIDDEN
</feature-toggle>
Setting Description
feature Feature config item, supports dot notation
variant The value the toggle must be to turn on this feature (default: true)