低代码公式引擎

321 阅读1分钟

支持算数运算,逻辑运算,变量取值,内置大量函数。支持自定义函数注册,自定义变量表达式。

公式表达式

SUM({user.age},{count}, IF({user.age} > 18,SUM(7,8),2),{count})

执行结果

image.png

使用示例

const formulaEngine = new FormulaEngine({
// 注册自定义函数
  functions: {
    'GETUSERNAME': function(users) {
      if(!users || !Array.isArray(users)) return ''
      return users.map(user=> user.name).join(',')
    },
    'TODAY': function() {
      return new Date().getTime();
    }
  },
  // 自定义变量匹配规则
  variableToken: {
     name: "VARIABLE",
     pattern: /{.*?}/,
  }
});

执行

// 传入公式表达式,参数
const res = formulaEngine.exec('SUM({user.age},{count}, IF({user.age} > 18,SUM(7,8),2),{count})', {"count": 15, "user": {"age": 18}});
 console.error('执行结果===>', res)