Skip to content
This repository has been archived by the owner on Jul 5, 2023. It is now read-only.

featurematrix/featurematrix-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FeatureMatrix JS

FeatureMatrix Javascript Client
This is the base JS library and browser implementation for FeatureMatrix.

Installation

npm i featurematrix-js

Getting started

Signup if you don't have an account yet at https://app.featurematrix.io/signup
Get familiar with concepts at https://docs.featurematrix.io

Usage

Start by importing FeatureMatrix class and create an instance.
Then initialize the instance with appKey and envKey which can be found at https://app.featurematrix.io/apps and https://app.featurematrix.io/environments

import { FeatureMatrix } from 'featurematrix-js';

const featureClient = new FeatureMatrix();

featureClient.init({
    appKey: 'ef445c2b-d4b4-43bc-b79a-7956baeef34a',
    envKey: '4306148c-3707-4b2d-99aa-4390f09b4f5a'
});

Events

featureClient exposes two events to subscribe to: ready and update.
After the client has been initialized and has successfully open a connection to FeatureMatrix backend ready event will be emitted.
And on each feature update which is made available to current app an update will be emitted with the latest state of the feature.

featureClient.on('ready', () => {
    const featureKeys = featureClient.getFeatures();
});

featureClient.on('update', feature => {
    const newFeatureState = featureClient.getFeatureState(feature.key);
});

API

type EventType = 'ready' | 'update';
interface Subscription {
    unsubscribe: () => void;
}

on(eventType: EventType, callback: (...args: any[]) => void): Subscription

Subscribe to either ready or update events.

getFeatureState(featureKey: string): boolean

Given the key of a feature, returns the feature state as boolean.

getFeatures(): string[]

Returns the list of available feature keys to current app.