Simple JavaScript expression evaluator
npm install simple-evalSimple JavaScript expression evaluator.
``sh`
yarn add simple-eval
or if npm is package manager of your choice
`sh`
npm install simple-eval --save
`js
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,acorn
but you're free to use any ESTree compliant parser such as , @babel/parser, or esprima.
Although a number of use cases is supported, do note that this library does not aim to be a drop-in replacement for eval.eval`, albeit it's still not supposed to be used instead of proper sandbox.
By supporting a limited set of instructions, it's arguably safer than
In particular, all kind of declarations and assignments are prohibited.