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.

32 lines (31 loc) 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.removeSemverSuffix = exports.isSemver = exports.buildSegmentModel = exports.buildSegmentRuleModel = exports.buildSegmentConditionModel = void 0; const util_js_1 = require("../features/util.js"); const models_js_1 = require("./models.js"); function buildSegmentConditionModel(segmentConditionJSON) { return new models_js_1.SegmentConditionModel(segmentConditionJSON.operator, segmentConditionJSON.value, segmentConditionJSON.property_); } exports.buildSegmentConditionModel = buildSegmentConditionModel; function buildSegmentRuleModel(ruleModelJSON) { const ruleModel = new models_js_1.SegmentRuleModel(ruleModelJSON.type); ruleModel.rules = ruleModelJSON.rules.map((r) => buildSegmentRuleModel(r)); ruleModel.conditions = ruleModelJSON.conditions.map((c) => buildSegmentConditionModel(c)); return ruleModel; } exports.buildSegmentRuleModel = buildSegmentRuleModel; function buildSegmentModel(segmentModelJSON) { const model = new models_js_1.SegmentModel(segmentModelJSON.id, segmentModelJSON.name); model.featureStates = segmentModelJSON['feature_states'].map((fs) => (0, util_js_1.buildFeatureStateModel)(fs)); model.rules = segmentModelJSON['rules'].map((r) => buildSegmentRuleModel(r)); return model; } exports.buildSegmentModel = buildSegmentModel; function isSemver(value) { return typeof value == 'string' && value.endsWith(':semver'); } exports.isSemver = isSemver; function removeSemverSuffix(value) { return value.replace(':semver', ''); } exports.removeSemverSuffix = removeSemverSuffix;