Context-based expression evaluator.
npm
npm install ts-expression-evaluator
yarn
yarn add ts-expression-evaluator
import evaluate , { registerFunction } from 'ts-expression-evaluator'
const context = {
id : 10 ,
name : 'FED' ,
count : 10 ,
staffs : [ {
id : 1 ,
name : 'Tina'
} , {
id : 2 ,
name : 'James'
} ] ,
}
// math
evaluate ( '1+2' ) // 3
// eval from context
evaluate ( 'name' , context ) // 'FED'
evaluate ( 'staffs[0].name' , context ) // 'Tina'
evaluate ( 'count + 10' , context ) // 20
// ===
evaluate ( 'count === 11' , context ) // false
// register custom function
registerFunction ( 'IF' , ( condition , ifTrue , ifFalse ) => {
return condition ? ifTrue : ifFalse ;
} )
evaluate ( 'IF(name === ' FED ', 'It\'s FED.' , 'It\'s not FED.' ) ') // It' s FED .
// array filter
evaluate ( 'staffs[this.id === 1]' , context ) // [{id: 1, name: 'Tina'}]
Operation
Symbol
Negate
!
Operation
Symbol
Add, Concat
+
Subtract
-
Multiply
*
Divide
/
Modulus
%
Operation
Symbol
Logical AND
&&
Logical OR
||
Comparison
Symbol
Equal
==
Not equal
!=
Greater than
>
Greater than or equal
>=
Less than
<
Less than or equal
<=
Type
Examples
Booleans
true
, false
Strings
"Hello "user"", 'Hey there!'
Numerics
6, -7.2, 5, -3.14159
Arrays
['hello', 'world!']
evaluate(exp: string, context: object): any
registerFunction(name: string, func: Function): void
registerFunctions(funcs: {[key: string]: Function}): void
MIT