Core JS SDK for Bool feature flag system
npm install @usebool/sdk-jsjs
// npm example
npm install @usebool/sdk-js
// yarn example
yarn add @usebool/sdk-js
// pnpm example
pnpm install @usebool/sdk-js
`
To use the JavaScript SDK, you will need the application key. This key will be provided in the bool dashboard and it is not a secret, meaning that there is no danger in exposing it in your client-side code.
$3
`js
import bool from '@usebool/sdk-js';
const boolClient = bool({ idToken: YOUR_ID_TOKEN });
`
You are now left with fetching feature flags where you have two options. After initialization, the client exposes two functions that each in turn return a Promise: hasFeature and getFeatures.
$3
`js
// Resolves in a list of feature flags
const allFeatures = await boolClient.getFeatures();
`
If there are no feature flags, an empty list will be returned.
In case of a faulty request the function will log a generic error saying "Feature flags could not be fetched", and will return an empty list by default.
$3
`js
// Resolves in a boolean
const myAmazingFeature = await boolClient.hasFeature('MY_AMAZING_FEATURE');
`
In case the feature flag cannot be found, the function will log an error saying 'Flag with key MY_AMAZING_FEATURE not found' and will return false. By returning false the function provides fallback in case of an accidental deletion of a feature flag.
Here you can find an example of how to use this SDK in a real application.
TypeScript
This package also provides typescript definitions of the following:
`ts
import {
BoolClient,
ClientConfig,
FeatureFlag,
FeatureFlagList,
} from '@usebool/sdk-js';
type BoolClient = {
hasFeature: (featureName: string) => Promise;
getFeatures: () => Promise;
};
type ClientConfig = {
idToken: string;
};
type FeatureFlag = {
id: string;
key: string;
name: string;
value: boolean;
description?: string;
};
type FeatureFlagList = {
Bool_FeatureFlag: FeatureFlag[];
};
``