Skip to content

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 ​

IEdge

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 ​

IEdge

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 ​

INode

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 ​

INode

The node to add.

Returns ​

INode

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? ​

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 ​

readonly edges: 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 ​

INode

Returns ​

IEdge[]


getOutgoingEdges() ​

getOutgoingEdges: (node) => IEdge[]

Defined in: packages/chaingraph-types/src/flow/interface.ts:190

Parameters ​

node ​

INode

Returns ​

IEdge[]


id ​

readonly id: string

Defined in: packages/chaingraph-types/src/flow/interface.ts:21

Unique identifier for the flow


metadata ​

readonly metadata: FlowMetadata

Defined in: packages/chaingraph-types/src/flow/interface.ts:24

Metadata about the flow


nodes ​

readonly nodes: 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 ​

INode

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.

Licensed under BUSL-1.1