Simple Rules Engine
A rules engine with a small API and simple rules configuration.
Usage
Please take a look at the examples folder for a complete simple
use of this code.
Installing
npm install simple-rules-engine
Writing Rules
Rules are JSON objects and can be a single object or an array of them.
The expected format is simple by design. Each rule object needs three fields:
- field: the name of the field you want to apply this rule to. For nested objects this value should be in dot-notation / flattened format. Ex.
field: author.name
- validation: the validation function you wish to perfom on field. This function needs to return a boolean value
- outcome: the function with the logic to be applied to the target object if the validation is
true
. It's important to note that the outcome only runs when the validation returns a true value. This behavior is just the initial step.
Ex.
const rule = field: 'name' { return value === 'John Snow'; } { objis_awesome = true; return obj; };
What happens when a validation return false
The engine will just return the target object that was passed in. As mentioned above this might change soon. Any feedback on this would be welcomed as a Github Issue using the feedback template.