@bpmnkit/feel

中文文档
1.1.1发布于 2026/10/08MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 2403

感觉(亲切的表达语言) 解析器、评估器、事件和亮点——94% DMN TCK 兼容性

中文使用文档
文档目录11 节
  1. 概览
  2. 特征
  3. 安装
  4. 快速启动
  5. 评估表达式
  6. 评估无效测试( DMN 输入表达式)
  7. 语法突出显示
  8. API 参考
  9. 解析结果
  10. 相关软件包
  11. 许可证
BPMN Kit logo

@bpmnkit/ feel (英语)

感觉(亲切的表达语言) 解析器、评估器、事件和亮点——94% DMN TCK 兼容性

npm license typescript ai-assisted tier: core

网站 • 妇女 文档 • 妇女 GitHub 图像 • 妇女 更改日志

核心层. Semver at 1.0:没有大放送,没有突破. 见 产品级。 。 。 .


概览

@bpmnkit/feel 执行 DMN 决策表和 BPMN 条件表达式中使用的感受表达式语言,并通过 2 053 个感受中1 941个 DMN TCK 电话 (94.5%)——其余病例及其原因列于 tests/tck.test.ts它执行 Camunda 8 的扩展,也用于感觉,并匹配 Camunda 感知文件中378个可重复的例子中的375个(tests/camunda-parity.test.ts) (中文(简体) ). 它包括一个活化剂,递归-后世解析器,AST评价器,formatter,和语法亮点.

特征

  • 完全感觉语法 ——算术,比较,逻辑,函数调用,路径,过滤器
  • 时间类型 ——日期,时间,日期,期限(ISO 8601,全谱遵守)
  • 一次性测试 —— DMN 输入表达式语法 (> 5, (中文(简体) ), "gold", "silver", (中文(简体) ), [1..10](中文(简体) )
  • 内设职能 101感函数(字符串、列表、数字、日期、上下文、范围),包括 Camunda 扩展(assert, (中文(简体) ), partition, (中文(简体) ), to json, (中文(简体) ), fromAi, (...) (中文(简体) )
  • 区域表达式 —— 说 [1..10], (中文(简体) ), (0..1), (中文(简体) ), [today..end]
  • 上下文文字 —— 说 { key: value, nested: { x: 1 } }
  • 语法突出显示 ——编辑语义符号分类
  • 零依赖关系

安装

npm install @bpmnkit/feel

快速启动

评估表达式

import { parseExpression, evaluate } from "@bpmnkit/feel"

const parsed = parseExpression("amount * 1.2 + fee")
if (!parsed.errors.length) {
  // `evaluate` takes an EvalContext — variables live under `vars`.
  const result = evaluate(parsed.ast!, { vars: { amount: 100, fee: 5 } })
  console.log(result) // 125
}

评估无效测试( DMN 输入表达式)

import { parseUnaryTests, evaluateUnaryTests } from "@bpmnkit/feel"

// Does input value match any listed condition?
const parsed = parseUnaryTests('"gold","silver"')
const matches = evaluateUnaryTests(parsed.ast!, "gold", { vars: {} })
console.log(matches) // true

语法突出显示

import { annotate, highlightToHtml } from "@bpmnkit/feel"

// Classified tokens, for an editor to style itself.
annotate("x > 1")[0] // { kind: "variable", value: "x", start: 0, end: 1 }

// Or the same tokens already wrapped in <span class="feel-…"> elements.
highlightToHtml('if x > 10 then "high" else "low"')

API 参考

导出说明
parseExpression(src)解析感觉表达式 ~ ParseResult
parseUnaryTests(src)解析非常规测试 • ParseResult
evaluate(ast, ctx)评估解析表达式; ctx 实值 { vars }
evaluateUnaryTests(ast, input, ctx)对照非必要测试的测试输入
formatFeel(node, opts?)不错的打印 a 解析节点文本
highlightToHtml(src)包裹在纸上 <span class="feel-…"> 要素
highlightFeel(src)别名 highlightToHtml
tokenize(src)原始令牌流
annotate(src)为突出显示而分类的指针(kind, (中文(简体) ), value, (中文(简体) ), start, (中文(简体) ), end(中文(简体) )

解析结果

interface ParseResult {
  ast: FeelNode | null
  errors: ParseError[]   // { message, start, end }
}

软件包说明
@bpmnkit/coreBPMN/DMN/Form 剖析器,构建器,布局引擎
@bpmnkit/canvas零依赖 SVG BPMN 查看器
@bpmnkit/editor全功能交互式 BPMN 编辑器
@bpmnkit/engine用于测试和演示的轻量级 BPMN 流程模拟器
@bpmnkit/plugins34个可堆肥画布插件
@bpmnkit/apiCamunda 8 REST API TypeScript 客户端
@bpmnkit/ascii作为 Unicode ASCII 艺术的 Render BPMN 图表
@bpmnkit/markdownMarkdown中的 BPMN 图表—— 注释、 标记下和 README 预发
@bpmnkit/docspack不丹 Kit Docs 作为AI 代理的离线文件包
@bpmnkit/camunda-docspackCamunda 8 个文件作为AI 代理的离线文件包
@bpmnkit/ui共享设计符和UI组件
@bpmnkit/profilesCLI 代理共享认证、 配置文件存储和客户端工厂
@bpmnkit/operateCamunda集群的监测与业务前端
@bpmnkit/connector-gen从 OpenAPI 规格生成连接器模板
@bpmnkit/connectorsCamunda 8 OOTB 连接器目录和确定模板应用程序
@bpmnkit/cliCamunda 8 命令行接口( casen)
@bpmnkit/proxy本地 AI 桥和 Camunda API 代理服务器
@bpmnkit/patternsBPMNKit AIKit 域进程模式
@bpmnkit/reebe-wasmWebAssembly BPMN 浏览器模拟引擎
@bpmnkit/worker-client独立工人的Thin Zeebe REST客户端
@bpmnkit/flow源自BPMN、工作类型和工人的代码第一持久流动
@bpmnkit/user-tasksCamunda 8 可嵌入的用户任务部件
@bpmnkit/cli-sdk为 casen CLI 创建 SDK 插件
@bpmnkit/create-casen-plugin脚手架, 在秒内新建一个 clin CLI 插件
@bpmnkit/casen-report来自 Camunda 8 事件的 HTML 报告和 SLA 数据
@bpmnkit/casen-worker-http示例 HTTP 工人插件 – 用活的 JSONPlaceholders API 数据完成工作
@bpmnkit/casen-worker-aiAI任务工作人员——分类、总结、提取和决定使用克洛德

许可证

麻省理工学院 BPMN Kit—— 制片人: u11g (单位:千克)

BPMN Kit

版本与发布记录

@bpmnkit/feel 共发布 16 个版本,首次发布于 2026/03/15;过去 12 个月发布了 16 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.1.1latest2026/10/081 个月前
1.1.02026/09/281 个月前
1.0.02026/09/191 个月前
0.1.02026/09/161 个月前
0.0.212026/09/151 个月前
0.0.202026/08/222 个月前

关于 @bpmnkit/feel 的常见问题

@bpmnkit/feel 是什么?

感觉(亲切的表达语言) 解析器、评估器、事件和亮点——94% DMN TCK 兼容性

如何安装 @bpmnkit/feel?

在项目目录运行 npm install @bpmnkit/feel,或使用 pnpm add / yarn add / bun add。

@bpmnkit/feel 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@bpmnkit/feel 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@bpmnkit/feel 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@bpmnkit/feel 可以商用吗?

@bpmnkit/feel 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@bpmnkit/feel 的下载量有多少?

根据 npm 官方下载统计,@bpmnkit/feel 在 2026/10/09 – 2026/11/07 这 30 天内被下载 2,403 次,日均约 80 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@bpmnkit/feel 还在维护吗?

最新版本 1.1.1 发布于 2026/10/08(1 个月前);至今共发布 16 个版本,其中过去 12 个月发布了 16 个;首次发布于 2026/03/15。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。