https://github.com/willmendesneto/feature-toggle-service
The simplest solution for feature toggle in Javascript. Simple how it should be.
https://github.com/willmendesneto/feature-toggle-service
feature-flag feature-toggle feature-toggle-service hacktoberfest toggle
Last synced: about 1 month ago
JSON representation
The simplest solution for feature toggle in Javascript. Simple how it should be.
- Host: GitHub
- URL: https://github.com/willmendesneto/feature-toggle-service
- Owner: willmendesneto
- License: mit
- Created: 2017-05-22T14:48:55.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2025-03-29T21:26:35.000Z (2 months ago)
- Last Synced: 2025-04-25T04:52:24.968Z (about 2 months ago)
- Topics: feature-flag, feature-toggle, feature-toggle-service, hacktoberfest, toggle
- Language: TypeScript
- Homepage:
- Size: 2.15 MB
- Stars: 12
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: contributing.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Feature Toggle Service
[](https://greenkeeper.io/)
[](https://stackblitz.com/edit/feature-toggle-service-playground)[](http://badge.fury.io/js/feature-toggle-service) [](https://npmjs.org/feature-toggle-service)
[](LICENSE)[](https://circleci.com/gh/willmendesneto/feature-toggle-service)
[](https://coveralls.io/r/willmendesneto/feature-toggle-service?branch=master)
[](https://david-dm.org/willmendesneto/feature-toggle-service)[](https://npmjs.org/feature-toggle-service)
[](https://npmjs.org/feature-toggle-service)The simplest solution for [feature toggles](http://martinfowler.com/bliki/FeatureToggle.html) 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](https://github.com/willmendesneto/feature-toggle-service/blob/master/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:
```bash
$ nvm install $(cat .nvmrc); # install required nodejs version
$ nvm use $(cat .nvmrc); # use nodejs version
```In Windows, please install NodeJS using one of these options:
Via `NVM Windows` package: Dowload via [this link](https://github.com/coreybutler/nvm-windows). After that, run the commands:
```bash
$ nvm install $(cat .nvmrc); # install required nodejs version
$ nvm use $(cat .nvmrc); # use nodejs version
```Via Chocolatey:
```bash
$ 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](https://yarnpkg.com/lang/en/docs/install/#mac-tab)
After that, just navigate to your local repository and run
```bash
$ yarn install
```## Demo
Try out our [demo on Stackblitz](https://feature-toggle-service-playground.stackblitz.io)!
### Run the tests
```bash
$ yarn test # run the tests
```### Run the build
```bash
$ yarn build # run the tests
```### Run the bundlesize check
```bash
$ yarn bundlesize # run the tests
```### Run the code lint
```bash
$ yarn lint # run the tests
```## `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 `
> For more details, [please check np package on npmjs.com](https://www.npmjs.com/package/np)
## Author
**Wilson Mendes (willmendesneto)**
-
-