ChainGraph API Documentation / @badaitech/chaingraph-types / IFlow
Interface: IFlow
Defined in: packages/chaingraph-types/src/flow/interface.ts:19
Interface representing a flow (graph) that contains nodes and edges.
Properties
addEdge()
addEdge: (
edge,disableEvents?) =>Promise<void>
Defined in: packages/chaingraph-types/src/flow/interface.ts:82
Adds an edge to the flow.
Parameters
edge
The edge to add.
disableEvents?
boolean
Returns
Promise<void>
addEdges()
addEdges: (
edges,disableEvents?) =>Promise<void>
Defined in: packages/chaingraph-types/src/flow/interface.ts:90
Adds multiple edges to the flow.
Parameters
edges
IEdge[]
The edges to add.
disableEvents?
boolean
If true, events will not be triggered for each edge added.
Returns
Promise<void>
A promise that resolves when all edges have been added.
addEdgeSync()
addEdgeSync: (
edge) =>void
Defined in: packages/chaingraph-types/src/flow/interface.ts:102
Adds an edge to the flow synchronously, without triggering events.
Parameters
edge
The edge to add.
Returns
void
addNode()
addNode: (
node,disableEvents?) =>Promise<INode>
Defined in: packages/chaingraph-types/src/flow/interface.ts:36
Adds a node to the flow.
Parameters
node
The node to add.
disableEvents?
boolean
Returns
Promise<INode>
addNodes()
addNodes: (
nodes,disableEvents?) =>Promise<INode[]>
Defined in: packages/chaingraph-types/src/flow/interface.ts:51
Adds multiple nodes to the flow.
Parameters
nodes
INode[]
The nodes to add.
disableEvents?
boolean
If true, events will not be triggered for each node added.
Returns
Promise<INode[]>
An array of added nodes.
addNodesSync()
addNodesSync: (
nodes) =>INode[]
Defined in: packages/chaingraph-types/src/flow/interface.ts:58
Adds a nodes to the flow synchronously, without triggering events.
Parameters
nodes
INode[]
The nodes to add.
Returns
INode[]
An array of added nodes.
addNodeSync()
addNodeSync: (
node) =>INode
Defined in: packages/chaingraph-types/src/flow/interface.ts:43
Adds a node to the flow synchronously, without triggering events.
Parameters
node
The node to add.
Returns
The added node.
clone()
clone: () =>
Promise<IFlow>
Defined in: packages/chaingraph-types/src/flow/interface.ts:172
Clone the flow
Returns
Promise<IFlow>
A new instance of the flow
connectPorts()
connectPorts: (
sourceNodeId,sourcePortId,targetNodeId,targetPortId) =>Promise<Edge>
Defined in: packages/chaingraph-types/src/flow/interface.ts:130
Connects two nodes via their ports.
Parameters
sourceNodeId
string
The ID of the source node.
sourcePortId
string
The ID of the source port.
targetNodeId
string
The ID of the target node.
targetPortId
string
The ID of the target port.
Returns
Promise<Edge>
deserialize()
deserialize: (
data,nodeRegistry?) =>IFlow
Defined in: packages/chaingraph-types/src/flow/interface.ts:186
Deserialize the flow from JSON
Parameters
data
unknown
JSON data to deserialize
nodeRegistry?
Optional node registry for custom node types
Returns
IFlow
Deserialized flow instance
disconnectPorts()
disconnectPorts: (
sourceNodeId,sourcePortId,targetNodeId,targetPortId) =>Promise<void>
Defined in: packages/chaingraph-types/src/flow/interface.ts:144
Disconnects two nodes via their ports.
Parameters
sourceNodeId
string
The ID of the source node.
sourcePortId
string
The ID of the source port.
targetNodeId
string
The ID of the target node.
targetPortId
string
The ID of the target port.
Returns
Promise<void>
dispose()
dispose: () =>
Promise<void>
Defined in: packages/chaingraph-types/src/flow/interface.ts:160
Disposes the flow and its resources.
Returns
Promise<void>
edges
readonlyedges:Map<string,IEdge>
Defined in: packages/chaingraph-types/src/flow/interface.ts:30
Map of edges in the flow
filterEdges()
filterEdges: (
predicate) =>IEdge[]
Defined in: packages/chaingraph-types/src/flow/interface.ts:192
Parameters
predicate
(edge) => boolean
Returns
IEdge[]
getIncomingEdges()
getIncomingEdges: (
node) =>IEdge[]
Defined in: packages/chaingraph-types/src/flow/interface.ts:188
Parameters
node
Returns
IEdge[]
getOutgoingEdges()
getOutgoingEdges: (
node) =>IEdge[]
Defined in: packages/chaingraph-types/src/flow/interface.ts:190
Parameters
node
Returns
IEdge[]
id
readonlyid:string
Defined in: packages/chaingraph-types/src/flow/interface.ts:21
Unique identifier for the flow
metadata
readonlymetadata:FlowMetadata
Defined in: packages/chaingraph-types/src/flow/interface.ts:24
Metadata about the flow
nodes
readonlynodes:Map<string,INode>
Defined in: packages/chaingraph-types/src/flow/interface.ts:27
Map of nodes in the flow
onEvent()
onEvent: (
handler) => () =>void
Defined in: packages/chaingraph-types/src/flow/interface.ts:166
Subscribe to flow events
Parameters
handler
(event) => Promise<void>
Event handler function
Returns
():
void
Returns
void
removeEdge()
removeEdge: (
edgeId) =>Promise<void>
Defined in: packages/chaingraph-types/src/flow/interface.ts:108
Removes an edge from the flow.
Parameters
edgeId
string
The ID of the edge to remove.
Returns
Promise<void>
removeEdges()
removeEdges: (
edgeIds) =>Promise<void>
Defined in: packages/chaingraph-types/src/flow/interface.ts:114
Removes multiple edges from the flow.
Parameters
edgeIds
string[]
The IDs of the edges to remove.
Returns
Promise<void>
removeNode()
removeNode: (
nodeId) =>Promise<void>
Defined in: packages/chaingraph-types/src/flow/interface.ts:76
Removes a node from the flow.
Parameters
nodeId
string
The ID of the node to remove.
Returns
Promise<void>
removePort()
removePort: (
nodeId,portId) =>Promise<void>
Defined in: packages/chaingraph-types/src/flow/interface.ts:121
Remove a port from a node, including all child ports and their connections
Parameters
nodeId
string
portId
string
Returns
Promise<void>
serialize()
serialize: () =>
unknown
Defined in: packages/chaingraph-types/src/flow/interface.ts:178
Serialize the flow to JSON
Returns
unknown
JSON representation of the flow
setEdges()
setEdges: (
edges) =>void
Defined in: packages/chaingraph-types/src/flow/interface.ts:96
Sets all edges in the flow, replacing any existing edges.
Parameters
edges
IEdge[]
The edges to set.
Returns
void
setIsDisabledPropagationEvents()
setIsDisabledPropagationEvents: (
value) =>void
Defined in: packages/chaingraph-types/src/flow/interface.ts:198
Set the execution state of the flow
Parameters
value
boolean
True if the flow is currently executing, false otherwise
Returns
void
updateNode()
updateNode: (
node) =>Promise<void>
Defined in: packages/chaingraph-types/src/flow/interface.ts:64
Updates a node in the flow and triggers an event.
Parameters
node
Returns
Promise<void>
updateNodes()
updateNodes: (
node) =>Promise<void>
Defined in: packages/chaingraph-types/src/flow/interface.ts:70
Updates multiple nodes in the flow and triggers an event.
Parameters
node
INode[]
Returns
Promise<void>
validate()
validate: () =>
Promise<boolean>
Defined in: packages/chaingraph-types/src/flow/interface.ts:155
Validates the entire flow.
Returns
Promise<boolean>
A promise that resolves to true if the flow is valid.