@splitsoftware/splitio-commons
Version:
Split JavaScript SDK common components
67 lines (66 loc) • 2.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.matcherFactory = void 0;
var all_1 = require("./all");
var segment_1 = require("./segment");
var large_segment_1 = require("./large_segment");
var whitelist_1 = require("./whitelist");
var eq_1 = require("./eq");
var gte_1 = require("./gte");
var lte_1 = require("./lte");
var between_1 = require("./between");
var eq_set_1 = require("./eq_set");
var cont_any_1 = require("./cont_any");
var cont_all_1 = require("./cont_all");
var part_of_1 = require("./part_of");
var ew_1 = require("./ew");
var sw_1 = require("./sw");
var cont_str_1 = require("./cont_str");
var dependency_1 = require("./dependency");
var boolean_1 = require("./boolean");
var string_1 = require("./string");
var semver_eq_1 = require("./semver_eq");
var semver_gte_1 = require("./semver_gte");
var semver_lte_1 = require("./semver_lte");
var semver_between_1 = require("./semver_between");
var semver_inlist_1 = require("./semver_inlist");
var rbsegment_1 = require("./rbsegment");
var matchers = [
undefined,
all_1.allMatcherContext,
segment_1.segmentMatcherContext,
whitelist_1.whitelistMatcherContext,
eq_1.equalToMatcherContext,
gte_1.greaterThanEqualMatcherContext,
lte_1.lessThanEqualMatcherContext,
between_1.betweenMatcherContext,
eq_set_1.equalToSetMatcherContext,
cont_any_1.containsAnySetMatcherContext,
cont_all_1.containsAllSetMatcherContext,
part_of_1.partOfSetMatcherContext,
ew_1.endsWithMatcherContext,
sw_1.startsWithMatcherContext,
cont_str_1.containsStringMatcherContext,
dependency_1.dependencyMatcherContext,
boolean_1.booleanMatcherContext,
string_1.stringMatcherContext,
semver_eq_1.equalToSemverMatcherContext,
semver_gte_1.greaterThanEqualToSemverMatcherContext,
semver_lte_1.lessThanEqualToSemverMatcherContext,
semver_between_1.betweenSemverMatcherContext,
semver_inlist_1.inListSemverMatcherContext,
large_segment_1.largeSegmentMatcherContext,
rbsegment_1.ruleBasedSegmentMatcherContext // IN_RULE_BASED_SEGMENT: 24
];
/**
* Matcher factory.
*/
function matcherFactory(log, matcherDto, storage) {
var type = matcherDto.type, value = matcherDto.value;
var matcherFn;
// @ts-ignore
if (matchers[type])
matcherFn = matchers[type](value, storage, log); // There is no index-out-of-bound exception in JavaScript
return matcherFn;
}
exports.matcherFactory = matcherFactory;