@oat-sa/expr-eval
Advanced tools
Changelog
2.0.0 - 2023-02-23
Add changes from version 2.0.2
of the base repository.
Also, fix a security issue by replacing Uglify with Terser
Added non-default exports when using the ES module format. This allows import { Parser } from 'expr-eval'
to work in TypeScript. The default export is still available for backward compatibility.
Added the if(condition, trueValue, falseValue)
function back. The ternary operator is still recommended if you need to only evaluate one branch, but we're keep this as an option at least for now.
Better support for arrays, including literals: [ 1, 2, 3 ]
and indexing: array[0]
New functions for arrays: join
, indexOf
, map
, filter
, and fold
Variable assignment: x = 4
Custom function definitions: myfunction(x, y) = x * y
Evaluate multiple expressions by separating them with ;
New operators: log2
(base-2 logarithm), cbrt
(cube root), expm1
(e^x - 1
), log1p
(log(1 + x)
), sign
(essentially x == 0 ? 0 : x / abs x
)
min
and max
functions accept either a parameter list or a single array argumentin
operator is enabled by default. It can be disabled by passing { operators: { 'in': false } }
to the Parser
constructor.||
(concatenation operator) now supports strings and arraysif(condition, trueValue, falseValue)
function. Use the ternary conditional operator instead: condition ? trueValue : falseValue
, or you can add it back easily with a custom function.Changelog
1.3.0 - 2019-01-31
[Feature] TAO-7378 Allow to use functions as binary operators when they are prefixed with a @
. #1
Fork from silentmatt/expr-eval v1.2.2