utils.evalExpression.ts Maven / Gradle / Ivy
The newest version!
import { executeExpression } from '../core/Expression/execute'
// @ts-ignore ignore import error from js file
import functions from './functions'
export { parseExpression } from '../core/Expression/parse'
export const DEFAULT_CONTEXT = {
...functions,
// @ts-ignore _n2oEvalContext задаётся где-то в App. FIXME: переделать на явную передачу контекста
// eslint-disable-next-line no-underscore-dangle
...window._n2oEvalContext,
}
/**
* Выполняет JS выражение
* @param expression {String} - Выражение, которое нужно выполнить
* @param model - {Object} - Аргумент вызова (будет обогощен либами, типа lodash, moment и пр.)
* @param {object} [ctx]
* @deprecated
*/
export function evalExpression(
expression: string,
model: object,
ctx: Record = {},
): ExpectedResult | void {
const context = { ...DEFAULT_CONTEXT, ...ctx }
return executeExpression(expression, model, context)
}
export default evalExpression