@opengis/fastify-table
Version:
core-plugins
21 lines (18 loc) • 909 B
JavaScript
function onCheck(rule, data) {
const val = data[rule[0]];
// console.log(val, rule[1], rule[2])
if (rule[1] === '==') return val === rule[2];
if (rule[1] === '!=') return val !== rule[2];
if (rule[1] === 'in' && rule[2].split) return rule[2].split(',').includes(val);
if (rule[1] === 'in' && rule[2].includes) return rule[2].includes(val);
if (rule[1] === 'not in' && rule[2].split) return !rule[2].split(',').includes(val);
if (rule[1] === 'not in' && rule[2].includes) return !rule[2].includes(val);
if (rule[1] === '>') return val > rule[2];
if (rule[1] === '<') return val < rule[2];
}
export default function conditions(rules, data) {
if (!rules?.length) return true;
const result = Array.isArray(rules[0]) ? !rules.filter(el => !onCheck(el, data)).length : onCheck(rules, data)
// console.log(rules, result)
return result;
}