imicros-rules

Execution service for rulesets

Usage no npm install needed!

<script type="module">
  import imicrosRules from 'https://cdn.skypack.dev/imicros-rules';
</script>

README

imicros-rules

Build Status Coverage Status

Moleculer service for rulesset execution

Uses imicros-rules-compiler as rules intepreter.

Installation

$ npm install imicros-rules --save

Dependencies

Required mixins (or a similar mixin with the same notation):

Usage

Usage rules service

const { ServiceBroker } = require("moleculer");
const { AclMixin } = require("imicros-acl");
const { MinioMixin } = require("imicros-minio");
const { Rules } = require("imicros-rules");

broker = new ServiceBroker({
    logger: console
});
broker.createService(Rules, Object.assign({ 
    mixins: [MinioMixin(), AclMixin]
}));
broker.start();

Actions rules service

  • eval { name, data } => result

Example eval

// path/to/ruleset/test.rules: "@@ @ user.age :: >= 16 & <= 35 => result := 'true' @@"
let params = {
    name: "path/to/ruleset/test.rules",
    data: { user: { age: 25 } }
};
let res = await broker.call("rules.eval", params, opts)
// res = { result: 'true' }