@emaarco/dmn-js-simulation

中文文档
0.4.1发布于 2026/11/12MITTypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 1.2万

在 dmn-js 模型中直接模拟 DMN 决策表——看哪个规则匹配,决定返回什么.

中文使用文档
文档目录8 节
  1. 这个项目背后的想法
  2. 特征
  3. 安装
  4. 使用量
  5. 没有模特儿评价
  6. 捐款
  7. 贷项
  8. 许可证

@emaarco/dmn-js-模拟

npm version license live demo

直接在 a 中模拟 DMN 决定表 日记 建模者——以具体输入来输入,并立即看到哪些规则是匹配的,哪些不匹配,以及决定的回报.

Drilling from the DRD into the Recommend Bike table, entering Road and 2500, then simulating highlights rule 3 and shows Model = Road Pro

这个项目背后的想法

@emaarco/dmn-js-simulation 对DMN来说 bpmn-js-token-simulation 给 BPMN : 它允许您验证决定逻辑 在你做模特的时候,而不是在后来的流程代码,测试,或生产中发现错误. 它支持 所有 DMN 点击策略 (单位:千美元)UNIQUE, (中文(简体) ), FIRST, (中文(简体) ), ANY, (中文(简体) ), PRIORITY, (中文(简体) ), COLLECT 与 SUM编号 :MIN编号 :MAX编号 :COUNT, (中文(简体) ), RULE ORDER, (中文(简体) ), OUTPUT ORDER和 多决定 DRD 链式。 。 。 .

特征

  • 决策表模拟 ——表上显示一个输入表;运行后突出对应的规则并读出结果. 规则因打击政策而放弃(例如: FIRST编号 :PRIORITY)显示为阴暗 候选人,因此政策的效果是显而易见的.
  • 所有打击政策,包括: COLLECT 汇总和违反政策警告(例如:. UNIQUE 页:1.
  • DRD 链式 ——模拟整个决定要求图:设定一次输入数据离开,每个决定按依赖顺序评价. 取消的决定突出并附有说明,说明其结果;进入一项决定反映了跑道的亮点.
  • 下潜 - 安装像任何 dmn-js 模块通过 additionalModules· ; dmn-js 是一个对等依赖,所以它驱动您已经使用的模型.
  • 可主题 ——所有UI都是类命名空间并被CSS变量所驱动,您可以覆盖.

安装

npm install @emaarco/dmn-js-simulation

dmn-js (qq 17)是一个同伴依赖——如果你还没有安装的话.

使用量

import DmnModeler from 'dmn-js/lib/Modeler'
import DmnSimulationModule from '@emaarco/dmn-js-simulation'
import '@emaarco/dmn-js-simulation/assets/dmn-js-simulation.css'

const modeler = new DmnModeler({
  container: '#canvas',
  decisionTable: { additionalModules: [DmnSimulationModule.decisionTable] },
  drd: { additionalModules: [DmnSimulationModule.decisionRequirementsDiagram] },
})

await modeler.importXML(dmnXml)

只登记您需要的视图 。 这些模块还分别导出:

import { DmnSimulationTableModule, DmnSimulationDecisionRequirementsDiagramModule } from '@emaarco/dmn-js-simulation'

DRD 视图 : 确保您的应用程序导入 dmn-js 图标字体 (单位:千美元)dmn-js/dist/assets/dmn-font/css/dmn-embedded.css与它的其他 样式表 — 否则 DRD 编辑器调色板图标会变为空白 .

没有模特儿评价

无框架评价核心也被导出,用于测试或无头用途:

import { DmnXmlReader, DecisionTableEvaluator } from '@emaarco/dmn-js-simulation'

const model = new DmnXmlReader().readDecisionTable(dmnXml)
const result = new DecisionTableEvaluator(model).evaluate(['Fall', 8])
// → { matchedRuleIndices, reportedRuleIndices, outputs, aggregation?, violation? }

new DmnModdleReader().readDecisionRequirementsDiagram(definitions) + 键 new DecisionRequirementsDiagramEvaluator(model).evaluate(inputValues) 对一整张DRD图也一样.

捐款

欢迎捐款——见 捐款额 用于单列波布局,脚本,以及如何在当地构建,测试和运行示例.

贷项

许可证

麻省理工学院 马可·沙克

版本与发布记录

@emaarco/dmn-js-simulation 共发布 8 个版本,首次发布于 2026/08/03;过去 12 个月发布了 8 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.4.1latest2026/11/121 天前
0.4.02026/10/2519 天前
0.3.22026/10/051 个月前
0.3.12026/09/211 个月前
0.3.02026/09/211 个月前
0.2.02026/08/073 个月前

关于 @emaarco/dmn-js-simulation 的常见问题

@emaarco/dmn-js-simulation 是什么?

在 dmn-js 模型中直接模拟 DMN 决策表——看哪个规则匹配,决定返回什么.

如何安装 @emaarco/dmn-js-simulation?

在项目目录运行 npm install @emaarco/dmn-js-simulation,或使用 pnpm add / yarn add / bun add。

@emaarco/dmn-js-simulation 支持 TypeScript 吗?

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

@emaarco/dmn-js-simulation 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@emaarco/dmn-js-simulation 可以商用吗?

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

@emaarco/dmn-js-simulation 的下载量有多少?

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

@emaarco/dmn-js-simulation 还在维护吗?

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