Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

shepherdwind/simple-evaluate

Repository files navigation

Simple Evaluate

NPM version build status Test coverage npm download

A safe parse for simple js expression.

Usage

import evaluate from 'simple-evaluate';
evaluate(null, '12 + 1 > 14');
evaluate({ a }, 'a + 1 > 14');

Support operation include

  • Math operator + - * / %
  • ternary expression a ? b : c
  • Comparison > < >= <= == != === !==
  • Logical && || !
  • Negation

You can run those expression, for example:

evaluate({}, '!a > 0');
evaluate({}, 'a > 0 || a < -12 || 12 + 2*(4 + 4) < 12');
evaluate({ a: 1 }, '-a * 2');

context find

$. stand for the root value all context, value path only support '.', and not support function call.

since 1.2.0, $. is optional. That mean $.a.b is equal to a.b

string and boolean

String and boolean support, string start with ' | ", just the same as javascript expression.

Boolean use two key words, true | false.

template string

You can use template string, just like the javascript syntax, for example.

evaluate({ a: 22 }, "`I am ${ a >= 18 ? 'adult' : 'child' }`").should.equal('I am adult');

Operation no support

  • Funcion call

So, you can not run those expression

evaluation({}, 'a(1) > 0');

About

A safe parse for simple js expression

Topics

Resources

License

Stars

Watchers

Forks

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /