UNPKG

json-based-conditions-and-rules-logic-evaluator

Version:

script that parses some customizable conditions and rules, then outputs a predefined value of that matching rule, or a default value

90 lines (89 loc) 1.63 kB
{ "CONDITIONS": { "contains_c": { "lhs": "dynamic", "rhs": "C", "type": "contains" }, "contains_m": { "lhs": "dynamic", "rhs": "M", "type": "contains" }, "contains_w_r_c": { "lhs": "dynamic", "rhs": ["W", "R", "C"], "type": "contains" }, "equals_a": { "lhs": "dynamic", "rhs": "A", "type": "equals" }, "equals_b_a": { "lhs": "dynamic", "rhs": ["B", "A"], "type": "equals" }, "starts_a": { "lhs": "dynamic", "rhs": "A", "type": "starts" }, "starts_a_b": { "lhs": "dynamic", "rhs": ["A", "B"], "type": "starts" }, "ends_z": { "lhs": "dynamic", "rhs": "Z", "type": "ends" }, "ends_y_z": { "lhs": "dynamic", "rhs": ["Y", "Z"], "type": "ends" } }, "RULES": [ { "conditions": [ { "id": "contains_c", "expected": true } ], "output": "contains c fulfilled" }, { "operator": "or", "conditions": [ { "id": "starts_d", "expected": true }, { "id": "starts_a_b", "expected": true } ], "output": "starts d or a or b fulfilled" }, { "operator": "and", "conditions": [ { "id": "contains_m", "expected": true }, { "id": "ends_z", "expected": true } ], "output": "starts m and ends z fulfilled" } ], "DEFAULT": "none fulfilled" }