Context-based expression parse and evaluator.
npm install ts-expression-evaluator[![NPM version][npm-image]][npm-url]
[![build status][travis-image]][travis-url]
[![Coverage Status][cov-image]][cov-status]
[npm-image]: https://img.shields.io/npm/v/ts-expression-evaluator.svg?style=flat-square
[npm-url]: https://www.npmjs.com/package/ts-expression-evaluator
[travis-image]: https://img.shields.io/travis/william-yz/ts-expression-evaluator.svg?style=flat-square
[travis-url]: https://travis-ci.org/william-yz/ts-expression-evaluator
[cov-image]: https://coveralls.io/repos/github/william-yz/ts-expression-evaluator/badge.svg?branch=master
[cov-status]: https://coveralls.io/github/william-yz/ts-expression-evaluator?branch=master
Context-based expression evaluator.
npm install ts-expression-evaluatoryarn add ts-expression-evaluatorjavascript
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'}]
`
Details
$3
| Operation | Symbol |
|-----------|:------:|
| Negate | ! |
$3
| Operation | Symbol |
|------------------|:----------------:|
| Add, Concat | + |
| Subtract | - |
| Multiply | * |
| Divide | / |
$3
| Operation | Symbol |
|------------------|:----------------:|
| Logical AND | && |
| Logical OR | || |
$3
| Comparison | Symbol |
|----------------------------|:------:|
| Equal | == |
| Not equal | != |
| Greater than | > |
| Greater than or equal | >= |
| Less than | < |
| Less than or equal | <= |
$3
| Type | Examples |
|----------|:------------------------------:|
| Booleans |
true, false` |