Zum Hauptinhalt springen

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

static ACTIVATOR: 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

EvaluateFunc

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

ExpressionEvaluatorResult


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()

static addGlobalEvaluator(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

EvaluateFunc

Function that takes one input string and should return string

Returns

void