rocket-workflow-engine
v1.0.17
Published
本项目为 Node.js 后端逻辑执行的工作流引擎,适合作为 npm 包集成到上游应用。
Readme
workflow-engine
本项目为 Node.js 后端逻辑执行的工作流引擎,适合作为 npm 包集成到上游应用。
特点
- 纯 TypeScript 实现,无前端依赖
- 适用于 Node.js 后端
- 支持多种节点类型(任务、条件、并行、循环、结束)
- 易于扩展和集成
构建与使用
安装依赖
npm install构建
npm run build开发模式
npm run build:dev集成方式
在你的 Node.js 项目中引入并使用各类节点与 WorkflowEngine。
目录结构
- src/node/ 节点相关逻辑
- src/core/ 工作流引擎核心
- src/controller/ 控制器
License
MIT
扩展:注册自定义节点类型
你可以通过 NodeFactory.register(type, factory) 注册自定义节点类型。例如:
import { NodeFactory } from './node/NodeFactory';
NodeFactory.register('MyCustomNode', (def) => ({
...def,
async run(ctx) {
ctx.set('myCustom', 'hello world');
console.log('MyCustomNode run called', ctx.toObject());
},
async rollback(ctx) {
ctx.set('myCustom', null);
console.log('MyCustomNode rollback called', ctx.toObject());
},
hasBeenInstantiated: true
}));
// 在节点定义中使用 type: 'MyCustomNode'
const nodes = [
{ id: '1', type: 'MyCustomNode', name: '自定义节点', canRollback: true }
];这样即可让上游业务灵活扩展节点类型和行为。
workflow/
├── controller/ # 控制层,触发执行、调试、查看状态
│ └── WorkflowController.ts
├── core/ # 核心执行引擎 & 上下文
│ ├── WorkflowEngine.ts
│ ├── WorkflowContext.ts
│ └── Runtime.ts
├── node/ # 节点类型定义和工厂
│ ├── BaseNode.ts
│ ├── NodeFactory.ts
│ └── types.ts
├── logger/ # 日志模块
│ └── Logger.ts
├── schema/ # DSL JSON 支持的结构定义
│ └── WorkflowSchema.ts
├── index.ts # 入口
└── example.ts # 使用示例
