@opengis/fastify-table
Version:
core-plugins
31 lines (30 loc) • 1 kB
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];
return null;
}
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;
}