Feature Toggle Service
The simplest solution for feature toggles in Javascript. Simple how it should be.
Why Feature toggle?
This is a common concept, but why use this directive instead solve it via server-side rendering?
The idea of this directive is make this process transparent and easier. So the main point is integrate this directive with other tooling process, such as:
- Server-side rendering;
- Progressive rendering;
- Any other that yoy like :)
You can integrate with WebSockets or handling this in a EventSourcing architecture. It's totally transparent for you and you can integrate easier in your application.
Contributing
Please check our contributing.md to know more about setup and how to contribute.
Setup and installation
Make sure that you are using the NodeJS version is the same as .nvmrc
file version. If you don't have this version please use a version manager such as nvm
or n
to manage your local nodejs versions.
Please make sure that you are using NodeJS version 6.10.2
Assuming that you are using nvm
, please run the commands inside this folder:
$ nvm install $(cat .nvmrc);
$ nvm use $(cat .nvmrc);
In Windows, please install NodeJS using one of these options:
Via NVM Windows
package: Dowload via this link. After that, run the commands:
$ nvm install $(cat .nvmrc);
$ nvm use $(cat .nvmrc);
Via Chocolatey:
$ choco install nodejs.install -version 6.10.2
Install yarn
We use yarn
as our package manager instead of npm
Install it following these steps
After that, just navigate to your local repository and run
$ yarn install
Demo
Try out our demo on Stackblitz!
Run the tests
$ yarn test
Run the build
$ yarn build
Run the bundlesize check
$ yarn bundlesize
Run the code lint
$ yarn lint
FeatureToggleService
This service exposes a few different methods with which you can interact with feature toggle service.
featureToggleService.set(obj)
Adds the feature toggle configuration in your application. This information will be private and checked via featureToggleService.isOn(key)
method.
featureToggleService.isOn(key, debug)
Checks if the feature toggle configuration has the string key value with true
value. For bundle reasons if you want to check if the feature toggle is turned off, please use !featureToggleService.isOn(key)
. When debug
param is passed as true
and it's not NODE_ENV
is not set to prod, it prints configuration, version and settings for debug purposes
Publish
this project is using np
package to publish, which makes things straightforward. EX: np <patch|minor|major>
For more details, please check np package on npmjs.com
Author
Wilson Mendes (willmendesneto)