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
    }
*/

Dependencies (0)

    Dev Dependencies (1)

    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