dynamic-rules

1.0.1 • Public • Published

Dynamic Rules

the most fun and fast way to eval javascript objects

Usage

  1. Passing an object and rules, getting the result.
const dynamicRules = require('dynamic-rules');
 
// This can be any javascript object
const myModel = {
    amount: 118,
    subtotal: 100,
    taxes: 18,
    typeDocument: {
        name: 'INVOICE',
    },
};
 
// This is the config dynamic-rules needs.
// model represents the parent of the object
const config = {
    condition: 'model.typeDocument.name === "INVOICE"',
    formula: '(model.subtotal * model.amount) + 10',
};
 
const result = dynamicRules.execute(myModel, config);
 
console.log(result);
 
/*
    {
        meetCondition: true,
        formula: 11790
    }
*/
  1. Merging the result into your object
const dynamicRules = require('dynamic-rules');
 
// This can be any javascript object
const myModel = {
    amount: 118,
    subtotal: 100,
    taxes: 18,
    typeDocument: {
        name: 'INVOICE',
    },
};
 
// This is the config dynamic-rules needs.
// model represents the parent of the object
const config = {
    merge: true, // make a copy of your model and return the result on it.
    condition: 'model.typeDocument.name === "INVOICE"',
    formula: '(model.subtotal * model.amount) + 10',
};
 
const result = dynamicRules.execute(myModel, config);
 
console.log(result);
 
/*
    {
        model: {
            amount: 118,
            subtotal: 100,
            taxes: 18,
            typeDocument: {
                name: 'INVOICE',
            },
        }
        condition: true,
        formula: 11790
    }
*/

Readme

Keywords

none

Package Sidebar

Install

npm i dynamic-rules

Weekly Downloads

1

Version

1.0.1

License

MIT

Unpacked Size

5.39 kB

Total Files

7

Last publish

Collaborators

  • erivero