simple-eval
v1.0.1
Published
Simple JavaScript expression evaluator
Downloads
2,674,485
Maintainers
Readme
simple-eval
Simple JavaScript expression evaluator.
Install
yarn add simple-eval
or if npm is package manager of your choice
npm install simple-eval --save
Usage
import simpleEval from 'simple-eval';
simpleEval('2 + 4 * 10 + -4'); // 38
simpleEval('Math.floor(Math.PI * 10)'); // exception
simpleEval('Math.floor(Math.PI * 10)', { Math }); // 31, works because we provided Math
simpleEval('foo.bar.baz ? 10 : Math.random()', {
Math,
foo: {
bar: {
baz: false,
}
}
}); // some random number, as returned by Math.random()
By default, simple-eval
uses jsep
,
but you're free to use any ESTree compliant parser such as acorn
, @babel/parser
, or esprima
.
Caveats
Although a number of use cases is supported, do note that this library does not aim to be a drop-in replacement for eval
.
By supporting a limited set of instructions, it's arguably safer than eval
, albeit it's still not supposed to be used instead of proper sandbox.
In particular, all kind of declarations and assignments are prohibited.