UNPKG

flagsmith-nodejs

Version:

Flagsmith lets you manage features flags and remote config across web, mobile and server side applications. Deliver true Continuous Integration. Get builds out faster. Control who has access to new features.

49 lines (41 loc) 1.8 kB
import { FeatureModel, FeatureSegment, FeatureStateModel, MultivariateFeatureOptionModel, MultivariateFeatureStateValueModel } from './models.js'; export function buildFeatureModel(featuresModelJSON: any): FeatureModel { return new FeatureModel(featuresModelJSON.id, featuresModelJSON.name, featuresModelJSON.type); } export function buildFeatureStateModel(featuresStateModelJSON: any): FeatureStateModel { const featureStateModel = new FeatureStateModel( buildFeatureModel(featuresStateModelJSON.feature), featuresStateModelJSON.enabled, featuresStateModelJSON.django_id, featuresStateModelJSON.feature_state_value, featuresStateModelJSON.featurestate_uuid ); featureStateModel.featureSegment = featuresStateModelJSON.feature_segment ? buildFeatureSegment(featuresStateModelJSON.feature_segment) : undefined; const multivariateFeatureStateValues = featuresStateModelJSON.multivariate_feature_state_values ? featuresStateModelJSON.multivariate_feature_state_values.map((fsv: any) => { const featureOption = new MultivariateFeatureOptionModel( fsv.multivariate_feature_option.value, fsv.multivariate_feature_option.id ); return new MultivariateFeatureStateValueModel( featureOption, fsv.percentage_allocation, fsv.id, fsv.mv_fs_value_uuid ); }) : []; featureStateModel.multivariateFeatureStateValues = multivariateFeatureStateValues; return featureStateModel; } export function buildFeatureSegment(featureSegmentJSON: any): FeatureSegment { return new FeatureSegment(featureSegmentJSON.priority); }