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