UNPKG

@coorpacademy/progression-engine

Version:

77 lines (52 loc) 1.76 kB
'use strict'; exports.__esModule = true; var _gt = require('lodash/fp/gt'); var _gt2 = _interopRequireDefault(_gt); var _isEqual = require('lodash/fp/isEqual'); var _isEqual2 = _interopRequireDefault(_isEqual); var _lt = require('lodash/fp/lt'); var _lt2 = _interopRequireDefault(_lt); var _negate = require('lodash/fp/negate'); var _negate2 = _interopRequireDefault(_negate); var _sortBy = require('lodash/fp/sortBy'); var _sortBy2 = _interopRequireDefault(_sortBy); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const IN = (expectedValues, value) => { return expectedValues.some((0, _isEqual2.default)(value)); }; const NOT_IN = (0, _negate2.default)(IN); const EQUALS = (expectedValues, value) => { return (0, _isEqual2.default)(expectedValues[0])(value); }; const NOT_EQUALS = (0, _negate2.default)(EQUALS); const LT = (expectedValues, value) => { return (0, _lt2.default)(value)(expectedValues[0]); }; const GT = (expectedValues, value) => { return (0, _gt2.default)(value)(expectedValues[0]); }; const LTE = (0, _negate2.default)(GT); const GTE = (0, _negate2.default)(LT); const BETWEEN = (expectedValues, value) => { const [min, max] = (0, _sortBy2.default)(v => v)(expectedValues); return GTE([min], value) && LTE([max], value); }; const NOT_BETWEEN = (0, _negate2.default)(BETWEEN); const operators = { BETWEEN, EQUALS, GT, GTE, IN, LT, LTE, NOT_BETWEEN, NOT_EQUALS, NOT_IN }; const checkCondition = (operatorKey, expectedValues, value) => { if (value === null || value === undefined) return false; return operators[operatorKey](expectedValues, value); }; exports.default = checkCondition; //# sourceMappingURL=condition-operators.js.map