ExpressionEvaluator
Evaluator for expression, that starts with "=" like "=2+2".
const instance = new ExpressionEvaluator();
const result = instance.exec("=2+2");
// result == "4"
or with tryExec
const instance = new ExpressionEvaluator();
const result = instance.tryExec("=2+2");
// result == { success: true, value: "4" }
Constructors
Constructor
new ExpressionEvaluator():
ExpressionEvaluator
Returns
ExpressionEvaluator
Properties
ACTIVATOR
staticACTIVATOR:string
Methods
addEvaluator()
addEvaluator(
evaluate):void
Add your own instance evaluator.
const instance = new ExpressionEvaluator();
instance.addEvaluator((input) => {
return input.replace("%myVariable%", "Chuck Norris");
});
const greetings = instance.exec("=Hello %myVariable%");
// greetings == "Hello Chuck Norris"
const otherInstance = new ExpressionEvaluator();
const greetings = otherInstance.exec("=Hello %myVariable%");
// greetings == "Hello %myVariable%"
Parameters
evaluate
Function that takes one input string and should return string
Returns
void
validate()
validate(
input):boolean
This function checks if the input is valid and startsWith the activator.
Parameters
input
string
the input to validate
Returns
boolean
true if successful validated, otherwise false
tryExec()
tryExec(
input):ExpressionEvaluatorResult
Tries to Evaluate the input by known evaluators and returns a object.
const instance = new ExpressionEvaluator();
const result = instance.tryExec("=2+2");
// result == { success: true, value: "4" }
const instance = new ExpressionEvaluator();
const result = instance.tryExec("blub");
// result == { success: false, value: null, error: "input does not starts with "="" }
Parameters
input
string
Returns
exec()
exec(
input):string
Evaluate the input by known evaluators. Caution, this will throw an error if evaluation fails.
const instance = new ExpressionEvaluator();
const result = instance.exec("=2+2");
// result == "4"
this will throw
const instance = new ExpressionEvaluator();
const result = instance.exec("2+2");
// error input does not starts with "="
Parameters
input
string
Returns
string
addGlobalEvaluator()
staticaddGlobalEvaluator(evaluate):void
Add your own global evaluator. Note: Adding a global evaluator will triggered in every instance!
If you don't want to trigger globally, use addEvaluator in the instance.
ExpressionEvaluator.addEvaluator((input) => {
return input.replace("%myVariable%", "Chuck Norris");
});
const instance = new ExpressionEvaluator();
const greetings = instance.exec("=Hello %myVariable%");
// greetings == "Hello Chuck Norris"
Parameters
evaluate
Function that takes one input string and should return string
Returns
void