featuretoggle-react
Version:
Library to use Feature Toggles of your choice in a React application
33 lines (27 loc) • 788 B
JavaScript
import flagsmith from 'flagsmith';
export class FlagsmithClientClass {
constructor({ environmentID }) {
this.fetching = false;
this.environmentID = environmentID;
this.init = this.init.bind(this);
}
init(handler) {
!this.fetching && flagsmith.init({
environmentID: this.environmentID,
onChange: () => {
const state = flagsmith.getState();
handler(this.constructor.transform(state));
},
});
this.fetching = true;
}
static transform(state) {
const { flags } = state;
const featureFlags = {};
Object.keys(flags).forEach((flag) => featureFlags[flag] = flags[flag].enabled);
return featureFlags;
}
}
export const flagsmithClient = ({ environmentID }) => new FlagsmithClientClass({
environmentID,
});