UNPKG

@coorpacademy/progression-engine

Version:

56 lines (44 loc) 1.21 kB
import gt from 'lodash/fp/gt'; import isEqual from 'lodash/fp/isEqual'; import lt from 'lodash/fp/lt'; import negate from 'lodash/fp/negate'; import sortBy from 'lodash/fp/sortBy'; 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