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.

24 lines (23 loc) 1.19 kB
import { buildFeatureStateModel } from '../features/util.js'; import { SegmentConditionModel, SegmentModel, SegmentRuleModel } from './models.js'; export function buildSegmentConditionModel(segmentConditionJSON) { return new SegmentConditionModel(segmentConditionJSON.operator, segmentConditionJSON.value, segmentConditionJSON.property_); } export function buildSegmentRuleModel(ruleModelJSON) { const ruleModel = new SegmentRuleModel(ruleModelJSON.type); ruleModel.rules = ruleModelJSON.rules.map((r) => buildSegmentRuleModel(r)); ruleModel.conditions = ruleModelJSON.conditions.map((c) => buildSegmentConditionModel(c)); return ruleModel; } export function buildSegmentModel(segmentModelJSON) { const model = new SegmentModel(segmentModelJSON.id, segmentModelJSON.name); model.featureStates = segmentModelJSON['feature_states'].map((fs) => buildFeatureStateModel(fs)); model.rules = segmentModelJSON['rules'].map((r) => buildSegmentRuleModel(r)); return model; } export function isSemver(value) { return typeof value == 'string' && value.endsWith(':semver'); } export function removeSemverSuffix(value) { return value.replace(':semver', ''); }