UNPKG

@coorpacademy/progression-engine

Version:

44 lines 1.21 kB
import _sortBy from "lodash/fp/sortBy"; import _negate from "lodash/fp/negate"; import _lt from "lodash/fp/lt"; import _isEqual from "lodash/fp/isEqual"; import _gt from "lodash/fp/gt"; const IN = (expectedValues, value) => { return expectedValues.some(_isEqual(value)); }; const NOT_IN = _negate(IN); const EQUALS = (expectedValues, value) => { return _isEqual(expectedValues[0])(value); }; const NOT_EQUALS = _negate(EQUALS); const LT = (expectedValues, value) => { return _lt(value)(expectedValues[0]); }; const GT = (expectedValues, value) => { return _gt(value)(expectedValues[0]); }; const LTE = _negate(GT); const GTE = _negate(LT); const BETWEEN = (expectedValues, value) => { const [min, max] = _sortBy(v => v)(expectedValues); return GTE([min], value) && LTE([max], value); }; const NOT_BETWEEN = _negate(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); }; export default checkCondition; //# sourceMappingURL=condition-operators.js.map