šŸš€ Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more →
Socket
Sign inDemoInstall
Socket

@sensative/jsep-eval

Package Overview
Dependencies
Maintainers
2
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@sensative/jsep-eval

A configurable eval function, which uses jsep to parse expressions. The generated result is evaluated w.r.t. a supplied object context.

1.0.1
latest
Source
npm
Version published
Maintainers
2
Created
Source

jsep-eval: evaluate javascript expressions

jsep-eval evaluates javascript expressions, and uses jsep to parse the expressions. A context can/should be supplied against which identifers are matched.

Usage

Node.JS

First, run npm install jsep-eval. Then, in your source file:

const jsepEval = require("jsep-eval");
const evaluate = jsepEval.evaluate;
const two = evaluate('1 + 1');
const three = evaluate('two + 1', {two: 2});

Configure evaluation restrictively

jsep-eval exposes the objects the allowed expression types

const types = jsepEval.types;

So it is possible to dis-allow a given expression type by removing it from this array:

const types = jsepEval.types;
evaluate('2 + 2'); // returns 4
delete types.BINARY;
evaluate('2 + 2'); // throws error

It is also possible to restrict evaluation by operator (both binary and unary):

const binaryOps = jsepEval.operators.binary;
const unaryOps = jsepEval.operators.unary;

evaluate('2 === 2'); // returns true
delete binaryOps['==='];
evaluate('2 === 2'); // throws error

evaluate('!false'); // returns true
unaryOps['!'] = () => 'bob';
evaluate('!false'); // returns 'bob'

License

jsep-eval is under the MIT license. See LICENSE file.

Keywords

jsep

FAQs

Package last updated on 23 Jul 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts