Skip to content

RolfKoenders/feature-flipper

Repository files navigation

Feature-Flipper

Build Status Coverage Status npm XO code style license standard-readme compliant

Feature flipping!

TODO: Fill out this long description.

Table of Contents

Install

npm install --save feature-flipper

Usage

const Flipper = require('feature-flipper');
const flip = new Flipper();

// Lets add a feature
flip.set('somefeature', false);

// Use the set method to change the status of a feature
flip.set('somefeature', true);

// To check if a feature is enabled
console.log( flip.isEnabled('somefeature') ); // true

// To flip the status of the feature
flip.flip('somefeature');
console.log( flip.isEnabled('somefeature') ); // false

// To remove the feature
flip.remove('somefeature');

// If you have your feature set in a seperate json object / file you can load them in
const featureSet = {
	somefeature: true,
	someOtherFeature: false
};
flip.load(featureSet);
console.log( flip.isEnabled('someOtherFeature') ); // false

API

TODO: Fill out API specification.

Middleware

This module can be used to enable/disable endpoints in your restify/express like http server with a middleware like the following.

function flipMW(feature) {
	return function(req, res, next) {
		if(flip.isEnabled(feature)) {
			return next();
		} else {
			return res.send(403);
		}
	}
}

server.get('/somefeature', [
	flipMW('somefeature'),
	(req, res, next) => {
		res.send('somefeature endpoint');
		return next();
	}
]);

Maintainers

@rolfkoenders

Contribute

PRs accepted.

License

MIT © 2017 Rolf Koenders

Releases

No releases published

Packages

No packages published