Newman's Personal Motorcade

    jsexpr

    0.10.3 • Public • Published

    jsexpr

    JSON Expressions!

    Build Status

    String and JSON expression interpolator and evaluator. Interpolates or evaluates a string against a json object, or transforms an object into another based on a json template.

    Installation

    npm install jsexpr
    

    String Evaluation

    const expression = require("jsexpr");
    
    var fn = expression.fn("(${host}=='mymachine' || ${host}=='yourmachine') && ${appName}=='su'");
    
    // Result: false
    var result = fn({host:"mymachine",appName:23});

    String Interpolation

    const expression = require("jsexpr");
    
    var expr = expression.expr("/var/${date}/${client.address}/file.log");
    
    // Result: /var/2017-01-01/localhost/file.log
    var result = expr({date:"2017-01-01",client:{address:"localhost"}});

    Object Interpolation

    const expression = require("jsexpr");
    
    var jsexpr = expression.expr({
    	time : "${client}/${address.host}:${address.port}",
    	data : {
    		request : {
    			headers : "${headers}"
    		}
    	}
    });
    
    var result = jsexpr({
    	client : "HOST001",
    	address : {
    		host : "localhost",
    		port : 8080
    	},
    	headers : "Content-Type: application/json"
    });

    Object Interpolation Result

    {
    	time: 'HOST001/localhost:8080',
    	data: {
    		request: {
    			headers: 'Content-Type: application/json'
    		}
    	}
    }

    JSON Stringify

    var input1 = {client : "HOST001", address : {host : "localhost", port : 8080}, headers : "Content-Type: application/json"};
    
    let jxpr1 = expr.expr("${JSON}");
    let jxpr2 = expr.expr("${JSON:address}");
    let jxpr3 = expr.expr("${JSON:address:0}");
    let jxpr4 = expr.expr("${JSON:0}");
    
    // =>
    
    {
      "client": "HOST001",
      "address": {
        "host": "localhost",
        "port": 8080
      },
      "headers": "Content-Type: application/json"
    }
    
    {
      "host": "localhost",
      "port": 8080
    }
    
    {"host":"localhost","port":8080}
    
    {"client":"HOST001","address":{"host":"localhost","port":8080},"headers":"Content-Type: application/json"}

    Install

    npm i jsexpr

    DownloadsWeekly Downloads

    13

    Version

    0.10.3

    License

    MIT

    Unpacked Size

    609 kB

    Total Files

    35

    Last publish

    Collaborators

    • solzimer