@coorpacademy/progression-engine
Version:
77 lines (52 loc) • 1.76 kB
JavaScript
;
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