JSFiddle - React, Tailwind, and code Playground

by mithunsatheesh

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/node-rules/6.1.0/node-rules.min.js"></script>

JavaScript

/* Creating Rule Engine instance */
var R = new NodeRules();

/* Add a rule */
var rule = {
    "condition": function(R) {
        console.log(this);
        R.when(this.transactionTotal < 500);
    },
    "consequence": function(R) {
        this.result = false;
        this.reason = "The transaction was blocked as it was less than 500";
        R.stop();
    }
};

/* Register Rule */
R.register(rule);

/* Add a Fact with less than 500 as transaction, and this should be blocked */
var fact = {
    "name": "user4",
    "application": "MOB2",
    "transactionTotal": 400,
    "cardType": "Credit Card"
};

/* Check if the engine blocks it! */
R.execute(fact, function (data) {
    if (data.result) {
        console.log("Valid transaction");
    } else {
        console.log("Blocked Reason:" + data.reason);
    }
});