UNPKG

@farris/expression-engine-vue

Version:

42 lines (41 loc) 1.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExpressionEngine = void 0; const index_1 = require("../context/index"); const index_2 = require("../expression/index"); const abstract_expression_engine_1 = require("./abstract_expression_engine"); class ExpressionEngine extends abstract_expression_engine_1.AbstractExpressionEngine { constructor(context) { super(context); } /** * 计算表达式 * @param expr 表达式 * @returns */ eval(expr) { const expression = new index_2.Expression(expr); return expression.eval(this.getContext()); } /** * 获取表达式上下文 * @returns */ getContext() { if (!this.context) { this.context = new index_1.ExpressionContext(); } return this.context; } /** * 添加自定义方法 * @param name 方法名 * @param func 方法体 */ addFun(name, func) { if (name && typeof func === 'function') { this.getContext().set(name, func); } } } exports.ExpressionEngine = ExpressionEngine;