workflow / Exports / NodeEdgeManager
Class: NodeEdgeManager
NodeEdgeManager - 노드/엣지 생성 순서 및 무결성 보장
핵심 원칙:
- 모든 노드는 자동 timestamp 할당
- 엣지는 source/target 노드 존재 확인 후 생성
- 순서 보장을 위한 즉시 실행 (큐 제거)
- 실패 시 즉시 에러 발생 (재시도 메커니즘 없음)
Table of contents
Constructors
Methods
- addNode
- addEdge
- connectNodes
- hasNode
- hasEdge
- getNode
- getEdge
- getAllNodes
- getAllEdges
- updateNode
- updateEdge
- removeNode
- removeEdge
- getNodeEdges
- getStats
- validate
- clear
- exportData
Constructors
constructor
• new NodeEdgeManager(logger?): NodeEdgeManager
Parameters
| Name | Type | Default value |
|---|---|---|
logger | SimpleLogger | SilentLogger |
Returns
Defined in
services/node-edge-manager.ts:22
Methods
addNode
▸ addNode(node, parentNodeIds?, connectionType?, connectionLabel?): WorkflowNode
노드 추가 (자동 timestamp 설정 + Fork/Join 패턴 지원)
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
node | Omit<WorkflowNode, "timestamp"> | undefined | 노드 데이터 (timestamp 제외) |
parentNodeIds? | string | string[] | undefined | 부모 노드 ID (단일 또는 배열 - Join 패턴 지원) |
connectionType | WorkflowConnectionType | 'processes' | 연결 타입 |
connectionLabel? | string | undefined | 연결 라벨 |
Returns
Defined in
services/node-edge-manager.ts:33
addEdge
▸ addEdge(sourceId, targetId, type, label?): UniversalWorkflowEdge
엣지 추가 (순차 실행 큐 사용)
Parameters
| Name | Type |
|---|---|
sourceId | string |
targetId | string |
type | WorkflowConnectionType |
label? | string |
Returns
Defined in
services/node-edge-manager.ts:70
connectNodes
▸ connectNodes(fromNode, toNode, type, label?): UniversalWorkflowEdge
노드 연결 (기존 노드들을 연결)
Parameters
| Name | Type |
|---|---|
fromNode | WorkflowNode |
toNode | WorkflowNode |
type | WorkflowConnectionType |
label? | string |
Returns
Defined in
services/node-edge-manager.ts:115
hasNode
▸ hasNode(nodeId): boolean
노드 존재 확인
Parameters
| Name | Type |
|---|---|
nodeId | string |
Returns
boolean
Defined in
services/node-edge-manager.ts:127
hasEdge
▸ hasEdge(edgeId): boolean
엣지 존재 확인
Parameters
| Name | Type |
|---|---|
edgeId | string |
Returns
boolean
Defined in
services/node-edge-manager.ts:134
getNode
▸ getNode(nodeId): undefined | WorkflowNode
노드 조회
Parameters
| Name | Type |
|---|---|
nodeId | string |
Returns
undefined | WorkflowNode
Defined in
services/node-edge-manager.ts:141
getEdge
▸ getEdge(edgeId): undefined | UniversalWorkflowEdge
엣지 조회
Parameters
| Name | Type |
|---|---|
edgeId | string |
Returns
undefined | UniversalWorkflowEdge
Defined in
services/node-edge-manager.ts:148
getAllNodes
▸ getAllNodes(): WorkflowNode[]
모든 노드 반환
Returns
Defined in
services/node-edge-manager.ts:155
getAllEdges
▸ getAllEdges(): UniversalWorkflowEdge[]
모든 엣지 반환
Returns
Defined in
services/node-edge-manager.ts:162
updateNode
▸ updateNode(nodeId, updates): null | WorkflowNode
노드 업데이트
Parameters
| Name | Type |
|---|---|
nodeId | string |
updates | Partial<WorkflowNode> |
Returns
null | WorkflowNode
Defined in
services/node-edge-manager.ts:169
updateEdge
▸ updateEdge(edgeId, updates): null | UniversalWorkflowEdge
엣지 업데이트
Parameters
| Name | Type |
|---|---|
edgeId | string |
updates | Partial<UniversalWorkflowEdge> |
Returns
null | UniversalWorkflowEdge
Defined in
services/node-edge-manager.ts:193
removeNode
▸ removeNode(nodeId): boolean
노드 삭제
Parameters
| Name | Type |
|---|---|
nodeId | string |
Returns
boolean
Defined in
services/node-edge-manager.ts:222
removeEdge
▸ removeEdge(edgeId): boolean
엣지 삭제
Parameters
| Name | Type |
|---|---|
edgeId | string |
Returns
boolean
Defined in
services/node-edge-manager.ts:244
getNodeEdges
▸ getNodeEdges(nodeId): Object
특정 노드의 연결된 엣지 조회
Parameters
| Name | Type |
|---|---|
nodeId | string |
Returns
Object
| Name | Type |
|---|---|
incoming | UniversalWorkflowEdge[] |
outgoing | UniversalWorkflowEdge[] |
Defined in
services/node-edge-manager.ts:260
getStats
▸ getStats(): Object
워크플로우 통계 조회
Returns
Object
| Name | Type |
|---|---|
nodeCount | number |
edgeCount | number |
nodesByType | Record<string, number> |
edgesByType | Record<string, number> |
Defined in
services/node-edge-manager.ts:273
validate
▸ validate(): Object
워크플로우 검증
Returns
Object
| Name | Type |
|---|---|
isValid | boolean |
errors | string[] |
warnings | string[] |
Defined in
services/node-edge-manager.ts:303
clear
▸ clear(): void
모든 데이터 정리
Returns
void
Defined in
services/node-edge-manager.ts:371
exportData
▸ exportData(): Object
워크플로우 데이터 Export
Returns
Object
| Name | Type |
|---|---|
nodes | WorkflowNode[] |
edges | UniversalWorkflowEdge[] |
metadata | { exportedAt: Date ; nodeCount: number ; edgeCount: number } |
metadata.exportedAt | Date |
metadata.nodeCount | number |
metadata.edgeCount | number |