2.0.4 • Published 6 months ago

js_formula_engine v2.0.4

Weekly downloads
-
License
-
Repository
-
Last release
6 months ago

BI 公式引擎

运行环境

编译后支持兼容 es5 的浏览器、JavaScript 引擎。

开发环境 node 版本为 v16.18.0

主要功能

  • 表达式解析
  • 可扩展预定义函数
  • 输出sql语句
    • 支持 mysql
    • 支持 pgsql
    • 支持指定字段别名
  • 直接执行表达式
  • 兼容常用全角字符
  • 允许限制可用函数
  • 功能测试

安装 npm 包

npm i js_formula_engine

Java 或 .net 使用,直接加载 index.js 内容,相当于 import 'js_formula_engine'

使用简介

先创建公式引擎实例,然后调用 parse 函数解析表达式。解析结果中的 data 字段是执行表达式或生成SQL语句的参数。

使用示例

import 'js_formula_engine'

// 创建引擎对象
const engine = new FormulaEngine();

// 解析表达式, 格式 engine.parse(表达式字符串, 表达式字段名称, 【可选】可用字段信息数组)
const data = engine.parse('"4" + "5" + if(false, 5, "888") + if (true, "aaa" + 666 + 999, "bbb") + 1 + "2" + "3"+1+2+3+4;', 'test', fields);

// 执行表达式,格式 engine.execute(解析结果data,【可选】数据字段的值,需要保证值类型和字段名称与解析时类型一致)
let value = engine.execute(data.data)
console.log(value.data)

// 生成SQL语句, 格式 engine.generateSQL(解析结果data, 【可选】字段别名信息)
let value = engine.generateSQL(data.data)
console.log(value.data)

V2.0 开始支持 mysql (默认), pgsql。指定生成的 SQL类型

// 创建引擎时指定默认SQL类型
const engine = new FormulaEngine(undefined, 'pgsql');

// 解析时指定类型
const data = engine.parse('1+2+3+4', 'test', fields, 'pgsql');

// 同时输出两种类型
const data = engine.parse('1+2+3+4', 'test', fields, ['mysql', 'pgsql']);

// 生成SQL时指定类型
// 需要注意的是,如果解析时的SQL类型不包含或引擎默认的SQL类型与 generateSQL 时的类型不一致,会自动重新解析,性能较差
engine.generateSQL(data.data, 'mysql');
2.0.2

6 months ago

2.0.4

6 months ago

2.0.0

6 months ago

1.0.12

10 months ago

1.0.11

10 months ago

1.0.10

10 months ago

1.0.9

11 months ago