@hapi/formula API v3.0.2
console
npm install @hapi/formula@3.0.2console
yarn add @hapi/formula@3.0.2console
pnpm add @hapi/formula@3.0.2Example
js
const Formula = require('@hapi/formula');
const functions = {
x: (value) => value + 10,
};
const constants = {
Z: 100,
};
const reference = function (name) {
return (context) => context[name];
};
const formula = new Formula.Parser('1 + a.b.c.2.4.x + [b] + x([y + 4] + Z)', {
functions,
constants,
reference,
});
formula.evaluate({ 'a.b.c.2.4.x': 2, b: 3, 'y + 4': 5 }); // 1 + 2 + 3 + 5 + 10 + 100
formula.evaluate({ 'a.b.c.2.4.x': '2', b: 3, 'y + 4': '5' }); // '123510010'Methods
new Formula.Parser(formula, [options])
Creates a new formula parser object where:
formula- the formula string to parse.options- optional settings:constants- a hash of key-value pairs used to convert constants to values.tokenRx- a regular expression used to validate token variables.reference- a variable resolver factory function with signaturefunction(variable)which returns a function with signaturefunction(context)returning the resolvedvariable.functions- a hash of key-value pairs used to resolve formula functions.
parser.evaluate([context])
Evaluate the formula where:
context- optional object with runtime formula context used to resolve variables.
Returns the string or number outcome of the resolved formula.
