A simple, generic, extensible Rules Engine in TypeScript.
Although written in TypeScript, the build produces JavaScript implementations that can be used anywhere JavaScript can be evaluated.
Install via npm.
npm install @adobe/aep-rules-engine
const RulesEngine = require("@adobe/aep-rules-engine");
const ruleset = RulesEngine({
version: 1,
rules: [
{
condition: {
definition: {
conditions: [
{
definition: {
conditions: [
{
definition: {
key: "color",
matcher: "eq",
values: ["orange", "blue"],
},
type: "matcher",
},
],
logic: "and",
},
type: "group",
},
],
logic: "and",
},
type: "group",
},
consequences: [
{
type: "item",
detail: {
hello: "world",
},
id: "abc123",
},
],
},
],
});
const consequences = ruleset.execute({ color: "orange" });
Contributions are welcomed! Read the Contributing Guide for more information.
This project is licensed under the Apache V2 License. See LICENSE for more information.