7.3.2 • Published 6 years ago

pseudo-eval v7.3.2

Weekly downloads
4
License
MIT
Repository
github
Last release
6 years ago

pseudo-eval

This is highly experimental and WIP, do not use this in any production software

A library to evaluate simple expression strings without actually calling eval(), making it much safer.

Supports evaluating:

  • Expression
  • Comparison
  • Math
  • Literals
  • Prop access

Introduction

pseudo-eval uses RegExp to statically evaluate JS code string expressions. This makes it safer to use, as harmful code is harder to be executed by end-users (as long as the optional context doesn't have access to it). Only simple expressions are supported.

Current problems:

  • Many edge-cases are not covered

Examples

import { evalExpression } from "pseudo-eval";

//evalExpression("string",[ctx={}])
evalExpression("4"); //=>4
evalExpression("false"); //=>false
evalExpression("'foo'"); //=>"foo"
evalExpression("a", {a: 2}); //=>2

evalExpression("4===4"); //=>true
evalExpression("4<2"); //=>false
evalExpression("1+2<2"); //=>true
evalExpression("foo.length>2", {foo: [1, 2, 3, 4]}); //=>true

if you only want to evaluate a single type, for example only math, you can access that function on its own. Check out the documentation for details.

7.3.2

6 years ago

7.3.1

6 years ago

7.3.0

6 years ago

7.2.5

6 years ago

7.2.4

6 years ago

7.2.3

6 years ago

7.2.2

6 years ago

7.2.1

6 years ago

7.2.0

6 years ago

7.1.0

6 years ago

7.0.0

6 years ago

6.0.1

6 years ago

6.0.0

6 years ago

5.4.6

6 years ago

5.4.5

7 years ago

5.4.4

7 years ago

5.4.3

7 years ago

5.4.2

7 years ago

5.4.1

7 years ago

5.4.0

7 years ago

5.3.0

7 years ago

5.2.0

7 years ago

5.1.3

7 years ago

5.1.2

7 years ago

5.1.1

7 years ago

5.1.0

7 years ago

5.0.0

7 years ago

4.1.0

7 years ago

4.0.0

7 years ago

3.0.0

7 years ago

2.2.0

7 years ago

2.1.0

7 years ago

2.0.0

7 years ago

1.4.0

7 years ago

1.3.0

7 years ago

1.2.0

7 years ago

1.1.0

7 years ago

1.0.0

7 years ago