@coorpacademy/progression-engine
Version:
49 lines (48 loc) • 1.66 kB
JavaScript
;
exports.__esModule = true;
exports.default = void 0;
var _sortBy2 = _interopRequireDefault(require("lodash/fp/sortBy"));
var _negate2 = _interopRequireDefault(require("lodash/fp/negate"));
var _lt2 = _interopRequireDefault(require("lodash/fp/lt"));
var _isEqual2 = _interopRequireDefault(require("lodash/fp/isEqual"));
var _gt2 = _interopRequireDefault(require("lodash/fp/gt"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
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);
};
var _default = exports.default = checkCondition;
//# sourceMappingURL=condition-operators.js.map