
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
toggle-kit
Advanced tools
A feature flag library which runs fully on the service itself, without any dependencies.
A customizable feature flag library, which allows you to define properties and flags. Everything runs "locally" on the service (application or API), without any dependencies.
These instructions will help you install the package itself and set the library up. It's gonna guide you through how to add properties, and how to create flags with different conditions.
This project requires NodeJS (version 20 or later) and NPM. Node and NPM are really easy to install. To make sure you have them available on your machine, try running the following command.
$ npm -v && node -v
10.x.x
v20.x.x
To install the package using NPM, PNPM or yarn, run:
$ npm install toggle-kit
$ pnpm install toggle-kit
$ yarn install toggle-kit
First of all we want to create an instance of the feature flag client. We can do this by using the createFeatureFlagClient method, which is gonna return an instance of the feature flag class.
import { createFeatureFlagClient } from "toggle-kit";
const client = createFeatureFlagClient({
property: {
// TODO: Add properties
},
flags: [
// TODO: Create flags
],
});
Secondly we want add some attributes we can use in the condition(s) in each of the feature flags we are creating later. You are allowed to use string, number or boolean types as a property
import { createFeatureFlagClient } from "toggle-kit";
const client = createFeatureFlagClient({
property: {
userId: "eb10e5c2-e3f4-46fc-a6fd-f2ddba0973fb",
email: "example@mail.com",
age: 21,
isAdmin: false,
},
flags: [
// TODO: Create flags
],
});
Last but not least, we want to create our first flag. Here we specify a name for the feature flag and select the type of condition(s) we want to evaluate upon. Then we select the property we want to evaluate, and an expected value.
import { createFeatureFlagClient } from "toggle-kit";
const client = createFeatureFlagClient({
property: {
userId: "eb10e5c2-e3f4-46fc-a6fd-f2ddba0973fb",
email: "example@mail.com",
age: 21,
isAdmin: false,
},
flags: [
{
name: "secret-page",
conditions: [
{
type: "equal",
attribute: "email",
expectedValue: "test@example.com",
},
],
},
],
});
When you have finished setting up the feature flag client, and created your flags, you start evaluating flags across your codebase.
import { createFeatureFlagClient } from "toggle-kit";
const client = createFeatureFlagClient({
property: {
userId: "eb10e5c2-e3f4-46fc-a6fd-f2ddba0973fb",
email: "example@mail.com",
age: 21,
isAdmin: false,
},
flags: [
{
name: "secret-page",
conditions: [
{
type: "equal",
attribute: "email",
expectedValue: "test@example.com",
},
],
},
],
});
const allowSecretPage = client.isEnabled("secret-page");
console.log(allowSecretPage); // False
If the getting started examples isn't enough, you can read more in depth documentation here.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
git checkout -b my-new-featuregit add .git commit -am 'Add some feature'git push origin my-new-featureThis package only allows the conventional commits on commit messages. This allows semantic-release to analyze the commits. The commit message should be structured as follows:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
The common types can be: build, chore, ci, docs, feat, fix, perf, refactor, revert, style, test
We use SemVer for versioning. For the versions available, see the tags on this repository.
Fredrik Johansen - Initial work - fredrikj31
See also the list of contributors who participated in this project.
MIT License (c) Fredrik Johansen and Contributors
FAQs
A feature flag library which runs fully on the service itself, without any dependencies.
We found that toggle-kit demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.