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.

28 lines (27 loc) 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildFeatureSegment = exports.buildFeatureStateModel = exports.buildFeatureModel = void 0; const models_js_1 = require("./models.js"); function buildFeatureModel(featuresModelJSON) { return new models_js_1.FeatureModel(featuresModelJSON.id, featuresModelJSON.name, featuresModelJSON.type); } exports.buildFeatureModel = buildFeatureModel; function buildFeatureStateModel(featuresStateModelJSON) { const featureStateModel = new models_js_1.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) => { const featureOption = new models_js_1.MultivariateFeatureOptionModel(fsv.multivariate_feature_option.value, fsv.multivariate_feature_option.id); return new models_js_1.MultivariateFeatureStateValueModel(featureOption, fsv.percentage_allocation, fsv.id, fsv.mv_fs_value_uuid); }) : []; featureStateModel.multivariateFeatureStateValues = multivariateFeatureStateValues; return featureStateModel; } exports.buildFeatureStateModel = buildFeatureStateModel; function buildFeatureSegment(featureSegmentJSON) { return new models_js_1.FeatureSegment(featureSegmentJSON.priority); } exports.buildFeatureSegment = buildFeatureSegment;