Skip to content

ChainGraph API Documentation / @badaitech/chaingraph-types / Flow

Class: Flow

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

Interface representing a flow (graph) that contains nodes and edges.

Implements

Constructors

Constructor

new Flow(metadata): Flow

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

Parameters

metadata

Partial<FlowMetadata> = {}

Returns

Flow

Properties

_isDisabledPropagationEvents

protected _isDisabledPropagationEvents: boolean = false

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

Flag to indicate if the flow is currently disabled for propagation events


edges

readonly edges: Map<string, IEdge>

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

Map of edges in the flow

Implementation of

IFlow.edges


eventQueue

protected eventQueue: EventQueue<FlowEvent<FlowEventType>>

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


id

readonly id: string

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

Unique identifier for the flow

Implementation of

IFlow.id


metadata

readonly metadata: FlowMetadata

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

Metadata about the flow

Implementation of

IFlow.metadata


nodes

readonly nodes: Map<string, INode>

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

Map of nodes in the flow

Implementation of

IFlow.nodes

Methods

addEdge()

addEdge(edge, disableEvents?): Promise<void>

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

Adds an edge to the flow.

Parameters

edge

IEdge

The edge to add.

disableEvents?

boolean

Returns

Promise<void>

Implementation of

IFlow.addEdge


addEdges()

addEdges(edges, disableEvents?): Promise<void>

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

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.

Implementation of

IFlow.addEdges


addEdgeSync()

addEdgeSync(edge): void

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

Adds an edge to the flow synchronously, without triggering events.

Parameters

edge

IEdge

The edge to add.

Returns

void

Implementation of

IFlow.addEdgeSync


addNode()

addNode(node, disableEvents?): Promise<INode>

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

Adds a node to the flow.

Parameters

node

INode

The node to add.

disableEvents?

boolean

Returns

Promise<INode>

Implementation of

IFlow.addNode


addNodes()

addNodes(nodes, disableEvents?): Promise<INode[]>

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

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.

Implementation of

IFlow.addNodes


addNodesSync()

addNodesSync(nodes): INode[]

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

Adds a nodes to the flow synchronously, without triggering events.

Parameters

nodes

INode[]

The nodes to add.

Returns

INode[]

An array of added nodes.

Implementation of

IFlow.addNodesSync


addNodeSync()

addNodeSync(node): INode

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

Adds a node to the flow synchronously, without triggering events.

Parameters

node

INode

The node to add.

Returns

INode

The added node.

Implementation of

IFlow.addNodeSync


clone()

clone(): Promise<IFlow>

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

Clone the flow

Returns

Promise<IFlow>

A new instance of the flow

Implementation of

IFlow.clone


connectPorts()

connectPorts(sourceNodeId, sourcePortId, targetNodeId, targetPortId): Promise<Edge>

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

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>

Implementation of

IFlow.connectPorts


deserialize()

deserialize(data, nodeRegistry?): IFlow

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

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

Implementation of

IFlow.deserialize


disconnectPorts()

disconnectPorts(sourceNodeId, sourcePortId, targetNodeId, targetPortId): Promise<void>

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

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>

Implementation of

IFlow.disconnectPorts


dispose()

dispose(): Promise<void>

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

Disposes the flow and its resources.

Returns

Promise<void>

Implementation of

IFlow.dispose


filterEdges()

filterEdges(predicate): IEdge[]

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

Parameters

predicate

(edge) => boolean

Returns

IEdge[]

Implementation of

IFlow.filterEdges


getIncomingEdges()

getIncomingEdges(node): IEdge[]

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

Parameters

node

INode

Returns

IEdge[]

Implementation of

IFlow.getIncomingEdges


getOutgoingEdges()

getOutgoingEdges(node): IEdge[]

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

Parameters

node

INode

Returns

IEdge[]

Implementation of

IFlow.getOutgoingEdges


onEvent()

onEvent(handler): () => void

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

Subscribe to flow events

Parameters

handler

(event) => void | Promise<void>

The event handler

Returns

(): void

Returns

void

Implementation of

IFlow.onEvent


removeEdge()

removeEdge(edgeId): Promise<void>

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

Removes an edge from the flow.

Parameters

edgeId

string

The ID of the edge to remove.

Returns

Promise<void>

Implementation of

IFlow.removeEdge


removeEdges()

removeEdges(edgeIds): Promise<void>

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

Removes multiple edges from the flow.

Parameters

edgeIds

string[]

The IDs of the edges to remove.

Returns

Promise<void>

Implementation of

IFlow.removeEdges


removeNode()

removeNode(nodeId): Promise<void>

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

Removes a node from the flow.

Parameters

nodeId

string

The ID of the node to remove.

Returns

Promise<void>

Implementation of

IFlow.removeNode


removePort()

removePort(nodeId, portId): Promise<void>

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

Remove a port from a node, including all child ports and their connections

Parameters

nodeId

string

portId

string

Returns

Promise<void>

Implementation of

IFlow.removePort


replaceEdge()

replaceEdge(edgeId, newEdge): void

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

Replace an existing edge with a new one. This is useful when updating edge references after transfer.

Parameters

edgeId

string

The ID of the edge to replace

newEdge

IEdge

The new edge to replace with

Returns

void


serialize()

serialize(): object

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

Serialize the flow to JSON

Returns

object

JSON representation of the flow

edges

edges: unknown[]

id

id: string

metadata

metadata: FlowMetadata

nodes

nodes: unknown[]

Implementation of

IFlow.serialize


setEdges()

setEdges(edges): void

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

Sets all edges in the flow, replacing any existing edges.

Parameters

edges

IEdge[]

The edges to set.

Returns

void

Implementation of

IFlow.setEdges


setIsDisabledPropagationEvents()

setIsDisabledPropagationEvents(value): void

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

Set the execution state of the flow

Parameters

value

boolean

True if the flow is currently executing, false otherwise

Returns

void

Implementation of

IFlow.setIsDisabledPropagationEvents


updateNode()

updateNode(node): Promise<void>

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

Updates a node in the flow and triggers an event.

Parameters

node

INode

Returns

Promise<void>

Implementation of

IFlow.updateNode


updateNodes()

updateNodes(nodes): Promise<void>

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

Updates multiple nodes in the flow and triggers an event.

Parameters

nodes

INode[]

Returns

Promise<void>

Implementation of

IFlow.updateNodes


validate()

validate(): Promise<boolean>

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

Validates the entire flow.

Returns

Promise<boolean>

A promise that resolves to true if the flow is valid.

Implementation of

IFlow.validate


deserialize()

static deserialize(data, nodeRegistry?): IFlow

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

Parameters

data

unknown

nodeRegistry?

NodeRegistry

Returns

IFlow

Licensed under BUSL-1.1