UNPKG

@splitsoftware/splitio-commons

Version:
29 lines (28 loc) 1.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.dependencyMatcherContext = void 0; var thenable_1 = require("../../utils/promise/thenable"); var constants_1 = require("../../logger/constants"); function dependencyMatcherContext(_a, storage, log) { var split = _a.split, treatments = _a.treatments; function checkTreatment(evaluation, acceptableTreatments, parentName) { var matches = false; if (Array.isArray(acceptableTreatments)) { matches = acceptableTreatments.indexOf(evaluation.treatment) !== -1; } log.debug(constants_1.ENGINE_MATCHER_DEPENDENCY, [parentName, evaluation.treatment, evaluation.label, parentName, acceptableTreatments, matches]); return matches; } return function dependencyMatcher(_a, splitEvaluator) { var key = _a.key, attributes = _a.attributes; log.debug(constants_1.ENGINE_MATCHER_DEPENDENCY_PRE, [split, JSON.stringify(key), attributes ? '\n attributes: ' + JSON.stringify(attributes) : '']); var evaluation = splitEvaluator(log, key, split, attributes, storage); if ((0, thenable_1.thenable)(evaluation)) { return evaluation.then(function (ev) { return checkTreatment(ev, treatments, split); }); } else { return checkTreatment(evaluation, treatments, split); } }; } exports.dependencyMatcherContext = dependencyMatcherContext;