Skip to content

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

Interface: INode

Defined in: packages/chaingraph-types/src/node/interface.ts:14

Base interface for all nodes in ChainGraph

Extends

  • INodeComposite

Properties

addObjectProperties()

addObjectProperties: (objectPort, properties, useParentUI?) => Promise<IPort<IPortConfig>[]>

Defined in: packages/chaingraph-types/src/node/interfaces/icomplex-port-handler.ts:33

Add multiple properties to an object port

Parameters

objectPort

IPort

The parent object port

properties

IPortConfig[]

The properties to add

useParentUI?

boolean

Returns

Promise<IPort<IPortConfig>[]>

The updated object port with the new properties

Inherited from

INodeComposite.addObjectProperties


addObjectProperty()

addObjectProperty: (objectPort, key, portConfig, useParentUI?) => Promise<IPort<IPortConfig>>

Defined in: packages/chaingraph-types/src/node/interfaces/icomplex-port-handler.ts:20

Add a new property to an object port

Parameters

objectPort

IPort

The parent object port

key

string

The property key

portConfig

IPortConfig

The port configuration for the new property

useParentUI?

boolean

indicates whether we want to use the parents UI

Returns

Promise<IPort<IPortConfig>>

Inherited from

INodeComposite.addObjectProperty


appendArrayItem()

appendArrayItem: (arrayPort, value) => Promise<number>

Defined in: packages/chaingraph-types/src/node/interfaces/icomplex-port-handler.ts:84

Add an item to an array port

Parameters

arrayPort

IPort

The array port

value

any

The value to append

Returns

Promise<number>

The index of the new item

Inherited from

INodeComposite.appendArrayItem


bindPortBindings()

bindPortBindings: () => void

Defined in: packages/chaingraph-types/src/node/interfaces/iport-binder.ts:34

Bind all port bindings Call this after modifying port structure

Returns

void

Inherited from

INodeComposite.bindPortBindings


bindPortToNodeProperty()

bindPortToNodeProperty: (targetObject, port) => void

Defined in: packages/chaingraph-types/src/node/interfaces/iport-binder.ts:21

Bind a port to an object property

Parameters

targetObject

any

The object to bind the port to

port

IPort

The port to bind

Returns

void

Inherited from

INodeComposite.bindPortToNodeProperty


clone()

clone: () => INodeComposite

Defined in: packages/chaingraph-types/src/node/interfaces/inode-composite.ts:59

Create a deep clone of the node

Returns

INodeComposite

A new node instance with the same state

Inherited from

INodeComposite.clone


cloneWithNewId()

cloneWithNewId: () => INodeComposite

Defined in: packages/chaingraph-types/src/node/interfaces/inode-clonable.ts:21

Create a deep clone of the node with a new unique identifier This method ensures all ports are properly cloned with new IDs while preserving the port hierarchy and values

Returns

INodeComposite

A result object containing the cloned node and ID mappings

Inherited from

INodeComposite.cloneWithNewId


commitBatchUpdate()

commitBatchUpdate: (eventContext?) => Promise<void>

Defined in: packages/chaingraph-types/src/node/interfaces/inode-composite.ts:85

Commit all collected port updates and emit events

Parameters

eventContext?

EventContext

Optional context to be added to all emitted events

Returns

Promise<void>

Inherited from

INodeComposite.commitBatchUpdate


copyObjectSchemaTo()

copyObjectSchemaTo: (sourceNode, sourceObjectPort, targetObjectPort, useParentUI?) => Promise<void>

Defined in: packages/chaingraph-types/src/node/interfaces/icomplex-port-handler.ts:61

Copy the schema of one object port to another This will copy the properties and their configurations and handle all internal ports accordingly

Parameters

sourceNode

INodeComposite

Source node (changed from IPortManager to INodeComposite)

sourceObjectPort

ObjectPort<IObjectSchema<Record<string, IPortConfig>>> | AnyPort

targetObjectPort

ObjectPort<IObjectSchema<Record<string, IPortConfig>>> | AnyPort

useParentUI?

boolean

Returns

Promise<void>

Inherited from

INodeComposite.copyObjectSchemaTo


deserialize()

deserialize: (data) => INodeComposite

Defined in: packages/chaingraph-types/src/node/interfaces/inode-composite.ts:53

Deserialize from JSON data

Parameters

data

unknown

The serialized data

Returns

INodeComposite

The deserialized instance

Inherited from

INodeComposite.deserialize


dispose()

dispose: () => Promise<void>

Defined in: packages/chaingraph-types/src/node/interfaces/icore-node.ts:47

Release resources and prepare the node for garbage collection

Returns

Promise<void>

Inherited from

INodeComposite.dispose


emit()

emit: <T>(event) => Promise<void>

Defined in: packages/chaingraph-types/src/node/interfaces/inode-composite.ts:65

Emit an event to all subscribers

Type Parameters

T

T extends NodeEvent

Parameters

event

T

The event to emit

Returns

Promise<void>

Inherited from

INodeComposite.emit


execute()

execute: (context) => Promise<NodeExecutionResult>

Defined in: packages/chaingraph-types/src/node/interfaces/icore-node.ts:31

Execute the node with the given context

Parameters

context

ExecutionContext

The execution context

Returns

Promise<NodeExecutionResult>

A promise resolving to the execution result

Inherited from

INodeComposite.execute


executeWithSystemPorts()

executeWithSystemPorts: (context) => Promise<NodeExecutionResult>

Defined in: packages/chaingraph-types/src/node/interfaces/inode-composite.ts:73

Execute the node with default port handling This is a non-abstract method that handles flow control and error handling

Parameters

context

ExecutionContext

The execution context

Returns

Promise<NodeExecutionResult>

The execution result

Inherited from

INodeComposite.executeWithSystemPorts


findPort()

findPort: (predicate) => IPort<IPortConfig> | undefined

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:145

Find a port by a predicate function

Parameters

predicate

(port) => boolean

Predicate function to match the port

Returns

IPort<IPortConfig> | undefined

The port if found, undefined otherwise

Inherited from

INodeComposite.findPort


findPortByPath()

findPortByPath: (path) => IPort<IPortConfig> | undefined

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:77

Find a port by following a path of property names from the node root

Parameters

path

string[]

Path segments (property names or array indices)

Returns

IPort<IPortConfig> | undefined

The port if found, undefined otherwise

Inherited from

INodeComposite.findPortByPath


findPorts()

findPorts: (predicate) => IPort<IPortConfig>[]

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:152

Find all ports by a predicate function

Parameters

predicate

(port) => boolean

Predicate function to match the port

Returns

IPort<IPortConfig>[]

Array of ports that match the predicate

Inherited from

INodeComposite.findPorts


getChildPorts()

getChildPorts: (parentPort) => IPort<IPortConfig>[]

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:105

Get all direct child ports of a parent port

Parameters

parentPort

IPort

The parent port

Returns

IPort<IPortConfig>[]

Array of child ports

Inherited from

INodeComposite.getChildPorts


getDefaultPorts()

getDefaultPorts: () => IPort<IPortConfig>[]

Defined in: packages/chaingraph-types/src/node/interfaces/i-system-port-manager.ts:19

Get all default ports based on the node's flow configuration

Returns

IPort<IPortConfig>[]

Inherited from

INodeComposite.getDefaultPorts


getErrorMessagePort()

getErrorMessagePort: () => IPort<IPortConfig> | undefined

Defined in: packages/chaingraph-types/src/node/interfaces/i-system-port-manager.ts:49

Get error message port

Returns

IPort<IPortConfig> | undefined

Inherited from

INodeComposite.getErrorMessagePort


getErrorPort()

getErrorPort: () => IPort<IPortConfig> | undefined

Defined in: packages/chaingraph-types/src/node/interfaces/i-system-port-manager.ts:44

Get error port

Returns

IPort<IPortConfig> | undefined

Inherited from

INodeComposite.getErrorPort


getFlowInPort()

getFlowInPort: () => IPort<IPortConfig> | undefined

Defined in: packages/chaingraph-types/src/node/interfaces/i-system-port-manager.ts:34

Get flow in port

Returns

IPort<IPortConfig> | undefined

Inherited from

INodeComposite.getFlowInPort


getFlowOutPort()

getFlowOutPort: () => IPort<IPortConfig> | undefined

Defined in: packages/chaingraph-types/src/node/interfaces/i-system-port-manager.ts:39

Get flow out port

Returns

IPort<IPortConfig> | undefined

Inherited from

INodeComposite.getFlowOutPort


getInputs()

getInputs: () => IPort<IPortConfig>[]

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:39

Get all input ports

Returns

IPort<IPortConfig>[]

Array of input ports

Inherited from

INodeComposite.getInputs


getNestedPorts()

getNestedPorts: (parentPort) => IPort<IPortConfig>[]

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:112

Get all nested ports of a parent port, including its children and their children recursively

Parameters

parentPort

IPort

The parent port

Returns

IPort<IPortConfig>[]

Array of all nested ports

Inherited from

INodeComposite.getNestedPorts


getOutputs()

getOutputs: () => IPort<IPortConfig>[]

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:45

Get all output ports

Returns

IPort<IPortConfig>[]

Array of output ports

Inherited from

INodeComposite.getOutputs


getParentshipChain()

getParentshipChain: (port) => IPort<IPortConfig>[]

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:119

Get the full parentship chain of a port, from the port up to the root

Parameters

port

IPort

The port to get the chain for

Returns

IPort<IPortConfig>[]

Array of ports in the chain, starting from the given port up to the root

Inherited from

INodeComposite.getParentshipChain


getPort()

getPort: (portId) => IPort<IPortConfig> | undefined

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:26

Get a port by its ID

Parameters

portId

string

The port ID

Returns

IPort<IPortConfig> | undefined

The port if found, undefined otherwise

Inherited from

INodeComposite.getPort


getPortByPath()

getPortByPath: (pathString) => IPort<IPortConfig> | undefined

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:84

Get a port by its path string (e.g., "port.subport.array[0].field")

Parameters

pathString

string

The path string to the port

Returns

IPort<IPortConfig> | undefined

The port if found, undefined otherwise

Inherited from

INodeComposite.getPortByPath


getPortPath()

getPortPath: (portId) => string | undefined

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:91

Get the full path string for a given port

Parameters

portId

string

The ID of the port

Returns

string | undefined

The path string (e.g., "port.subport.field") or undefined if port not found

Inherited from

INodeComposite.getPortPath


getPortPathForPort()

getPortPathForPort: (port) => string

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:98

Get the full path string for a given port instance

Parameters

port

IPort

The port instance

Returns

string

The path string (e.g., "port.subport.field")

Inherited from

INodeComposite.getPortPathForPort


getRootPort()

getRootPort: (port) => IPort

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:126

Get the root port of a given port by traversing up the parentship chain

Parameters

port

IPort

The port to find the root for

Returns

IPort

The root port

Inherited from

INodeComposite.getRootPort


getSystemPortConfigs()

getSystemPortConfigs: () => IPortConfig[]

Defined in: packages/chaingraph-types/src/node/interfaces/i-system-port-manager.ts:24

Get system port configurations

Returns

IPortConfig[]

Inherited from

INodeComposite.getSystemPortConfigs


getUI()

getUI: () => NodeUIMetadata | undefined

Defined in: packages/chaingraph-types/src/node/interfaces/inode-ui.ts:19

Get the node's UI metadata

Returns

NodeUIMetadata | undefined

Node UI metadata or undefined if not set

Inherited from

INodeComposite.getUI


getVersion()

getVersion: () => number

Defined in: packages/chaingraph-types/src/node/interfaces/inode-versioning.ts:23

Get the current version number

Returns

number

The current version

Inherited from

INodeComposite.getVersion


hasPort()

hasPort: (portId) => boolean

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:33

Check if a port with the given ID exists

Parameters

portId

string

The port ID

Returns

boolean

True if the port exists, false otherwise

Inherited from

INodeComposite.hasPort


id

readonly id: string

Defined in: packages/chaingraph-types/src/node/interfaces/icore-node.ts:18

Unique identifier of the node

Inherited from

INodeComposite.id


incrementVersion()

incrementVersion: () => number

Defined in: packages/chaingraph-types/src/node/interfaces/inode-versioning.ts:17

Increment the node's version number

Returns

number

The new version number

Inherited from

INodeComposite.incrementVersion


initialize()

initialize: (portsConfig?) => void

Defined in: packages/chaingraph-types/src/node/interfaces/inode-composite.ts:46

Initialize the node with port configurations

Parameters

portsConfig?

Map<string, IPortConfig>

Optional map of port configurations

Returns

void

Inherited from

INodeComposite.initialize


initializePortsFromConfigs()

initializePortsFromConfigs: (portsConfigs, syncValuesToStorage?) => void

Defined in: packages/chaingraph-types/src/node/interfaces/iport-binder.ts:28

Initialize all ports from configs and establish property bindings

Parameters

portsConfigs

Map<string, IPortConfig>

Map of port configurations

syncValuesToStorage?

boolean

If true, syncs port defaults to storage; if false, preserves existing storage values

Returns

void

Inherited from

INodeComposite.initializePortsFromConfigs


isDefaultPort()

isDefaultPort: (portId) => boolean

Defined in: packages/chaingraph-types/src/node/interfaces/i-system-port-manager.ts:29

Check if a port is a system default port

Parameters

portId

string

Returns

boolean

Inherited from

INodeComposite.isDefaultPort


metadata

readonly metadata: NodeMetadata

Defined in: packages/chaingraph-types/src/node/interfaces/icore-node.ts:21

Metadata describing the node

Inherited from

INodeComposite.metadata


on()

on: <T>(eventType, handler) => () => void

Defined in: packages/chaingraph-types/src/node/interfaces/inode-events.ts:21

Subscribe to node events of a specific type

Type Parameters

T

T extends NodeEvent

Parameters

eventType

T["type"]

The type of event to subscribe to

handler

(event) => void | Promise<void>

The event handler function

Returns

A function to unsubscribe

(): void

Returns

void

Inherited from

INodeComposite.on


onAll()

onAll: (handler) => () => void

Defined in: packages/chaingraph-types/src/node/interfaces/inode-events.ts:31

Subscribe to all node events

Parameters

handler

(event) => void | Promise<void>

The event handler function

Returns

A function to unsubscribe

(): void

Returns

void

Inherited from

INodeComposite.onAll


onEvent()

onEvent: (event) => Promise<void>

Defined in: packages/chaingraph-types/src/node/interfaces/inode-events.ts:37

Handle an event

Parameters

event

NodeEvent

The event to handle

Returns

Promise<void>

Inherited from

INodeComposite.onEvent


ports

readonly ports: Map<string, IPort<IPortConfig>>

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:19

Get all ports of the node

Inherited from

INodeComposite.ports


processPortConfig()

processPortConfig: (config, context) => IPortConfig

Defined in: packages/chaingraph-types/src/node/interfaces/iport-binder.ts:39

Process a port config through the PortConfigProcessor

Parameters

config

IPortConfig

context
nodeId

string

parentPortConfig

IPortConfig | null

propertyKey

string

propertyValue

any

Returns

IPortConfig

Inherited from

INodeComposite.processPortConfig


removeArrayItem()

removeArrayItem: (arrayPort, index) => Promise<void>

Defined in: packages/chaingraph-types/src/node/interfaces/icomplex-port-handler.ts:91

Remove an item from an array port

Parameters

arrayPort

IPort

The array port

index

number

The index to remove

Returns

Promise<void>

Inherited from

INodeComposite.removeArrayItem


removeArrayItems()

removeArrayItems: (arrayPort, indices) => Promise<void>

Defined in: packages/chaingraph-types/src/node/interfaces/icomplex-port-handler.ts:98

Remove multiple items from an array port

Parameters

arrayPort

IPort

The array port

indices

number[]

The indices to remove

Returns

Promise<void>

Inherited from

INodeComposite.removeArrayItems


removeObjectProperties()

removeObjectProperties: (objectPort, keys) => Promise<void>

Defined in: packages/chaingraph-types/src/node/interfaces/icomplex-port-handler.ts:51

Remove multiple properties from an object port

Parameters

objectPort

IPort

The parent object port

keys

string[]

The property keys to remove

Returns

Promise<void>

Inherited from

INodeComposite.removeObjectProperties


removeObjectProperty()

removeObjectProperty: (objectPort, key) => Promise<void>

Defined in: packages/chaingraph-types/src/node/interfaces/icomplex-port-handler.ts:44

Remove a property from an object port

Parameters

objectPort

IPort

The parent object port

key

string

The property key to remove

Returns

Promise<void>

Inherited from

INodeComposite.removeObjectProperty


removePort()

removePort: (portId) => void

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:64

Remove a port by its ID

Parameters

portId

string

The ID of the port to remove

Returns

void

Inherited from

INodeComposite.removePort


removePorts()

removePorts: (portIds) => void

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:70

Remove multiple ports by their IDs

Parameters

portIds

string[]

Array of port IDs to remove

Returns

void

Inherited from

INodeComposite.removePorts


replaceStorage()

replaceStorage: (newStorage) => void

Defined in: packages/chaingraph-types/src/node/interfaces/inode-composite.ts:97

Internal

Replace the unified storage with a new instance Used during cloning to set up the cloned node's storage

Parameters

newStorage

UnifiedPortStorage

Returns

void

Inherited from

INodeComposite.replaceStorage


reset()

reset: () => Promise<void>

Defined in: packages/chaingraph-types/src/node/interfaces/icore-node.ts:42

Reset the node to its initial state

Returns

Promise<void>

Inherited from

INodeComposite.reset


serialize()

serialize: () => unknown

Defined in: packages/chaingraph-types/src/node/interfaces/iserializable.ts:20

Serialize the node to a JSON-compatible format

Returns

unknown

The serialized node

Inherited from

INodeComposite.serialize


setDimensions()

setDimensions: (dimensions, emitEvent?) => void

Defined in: packages/chaingraph-types/src/node/interfaces/inode-ui.ts:40

Update the node's dimensions

Parameters

dimensions

Dimensions

New dimensions

emitEvent?

boolean

Whether to emit a dimensions change event

Returns

void

Inherited from

INodeComposite.setDimensions


setMetadata()

setMetadata: (metadata) => void

Defined in: packages/chaingraph-types/src/node/interfaces/icore-node.ts:60

Set the node metadata

Parameters

metadata

NodeMetadata

New metadata

Returns

void

Inherited from

INodeComposite.setMetadata


setNodeParent()

setNodeParent: (position, parentNodeId?, emitEvent?) => void

Defined in: packages/chaingraph-types/src/node/interfaces/inode-ui.ts:48

Update the node's parent and position

Parameters

position

Position

New position coordinates

parentNodeId?

string

ID of the parent node or undefined to remove parent

emitEvent?

boolean

Whether to emit a parent change event

Returns

void

Inherited from

INodeComposite.setNodeParent


setPort()

setPort: (port) => IPort

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:52

Add or update a port

Parameters

port

IPort

The port to set

Returns

IPort

The added/updated port

Inherited from

INodeComposite.setPort


setPorts()

setPorts: (ports) => void

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:58

Set all ports at once

Parameters

ports

Map<string, IPort<IPortConfig>>

Map of ports to set

Returns

void

Inherited from

INodeComposite.setPorts


setPosition()

setPosition: (position, emitEvent?) => void

Defined in: packages/chaingraph-types/src/node/interfaces/inode-ui.ts:33

Update the node's position

Parameters

position

Position

New position coordinates

emitEvent?

boolean

Whether to emit a position change event

Returns

void

Inherited from

INodeComposite.setPosition


setStatus()

setStatus: (status, emitEvent?) => void

Defined in: packages/chaingraph-types/src/node/interfaces/icore-node.ts:54

Set the node status

Parameters

status

NodeStatus

New status

emitEvent?

boolean

Whether to emit a status change event

Returns

void

Inherited from

INodeComposite.setStatus


setUI()

setUI: (ui, emitEvent?) => void

Defined in: packages/chaingraph-types/src/node/interfaces/inode-ui.ts:26

Update the node's UI metadata

Parameters

ui

NodeUIMetadata

New UI metadata

emitEvent?

boolean

Whether to emit a UI change event

Returns

void

Inherited from

INodeComposite.setUI


setVersion()

setVersion: (version) => void

Defined in: packages/chaingraph-types/src/node/interfaces/inode-versioning.ts:29

Set the version number

Parameters

version

number

The new version number

Returns

void

Inherited from

INodeComposite.setVersion


shouldExecute()

shouldExecute: (context) => boolean

Defined in: packages/chaingraph-types/src/node/interfaces/i-system-port-manager.ts:54

Determine if node should execute based on flow ports

Parameters

context

ExecutionContext

Returns

boolean

Inherited from

INodeComposite.shouldExecute


startBatchUpdate()

startBatchUpdate: () => void

Defined in: packages/chaingraph-types/src/node/interfaces/inode-composite.ts:79

Start collecting port updates without emitting events immediately Used for batch operations where multiple ports are updated

Returns

void

Inherited from

INodeComposite.startBatchUpdate


status

readonly status: NodeStatus

Defined in: packages/chaingraph-types/src/node/interfaces/icore-node.ts:24

Current execution status of the node

Inherited from

INodeComposite.status


storage

readonly storage: UnifiedPortStorage

Defined in: packages/chaingraph-types/src/node/interfaces/inode-composite.ts:90

Access to unified port storage (for advanced usage)

Inherited from

INodeComposite.storage


updateArrayItemConfig()

updateArrayItemConfig: (arrayPort) => Promise<void>

Defined in: packages/chaingraph-types/src/node/interfaces/icomplex-port-handler.ts:75

Updates the items with the new array ports item configuration

Parameters

arrayPort

IPort

The array port

Returns

Promise<void>

Inherited from

INodeComposite.updateArrayItemConfig


updatePort()

updatePort: (port, eventContext?) => Promise<void>

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:132

Update a port with new configuration/value

Parameters

port

IPort

The port to update

eventContext?

EventContext

Returns

Promise<void>

Inherited from

INodeComposite.updatePort


updatePorts()

updatePorts: (ports, eventContext?) => Promise<void>

Defined in: packages/chaingraph-types/src/node/interfaces/iport-manager.ts:138

Update multiple ports at once

Parameters

ports

IPort<IPortConfig>[]

Array of ports to update

eventContext?

EventContext

Returns

Promise<void>

Inherited from

INodeComposite.updatePorts


updatePortsAfterExecution()

updatePortsAfterExecution: (success, errorMessage?) => Promise<void>

Defined in: packages/chaingraph-types/src/node/interfaces/i-system-port-manager.ts:59

Update flow ports after execution

Parameters

success

boolean

errorMessage?

string

Returns

Promise<void>

Inherited from

INodeComposite.updatePortsAfterExecution


validate()

validate: () => Promise<NodeValidationResult>

Defined in: packages/chaingraph-types/src/node/interfaces/icore-node.ts:37

Validate the node configuration

Returns

Promise<NodeValidationResult>

A promise resolving to the validation result

Inherited from

INodeComposite.validate

Licensed under BUSL-1.1