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
The parent object port
properties
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
The parent object port
key
string
The property key
portConfig
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
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
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
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
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
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
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
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
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
The port to find the root for
Returns
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
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
readonlyid: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
readonlymetadata: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
The event to handle
Returns
Promise<void>
Inherited from
INodeComposite.onEvent
ports
readonlyports: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
context
nodeId
string
parentPortConfig
IPortConfig | null
propertyKey
string
propertyValue
any
Returns
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
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
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
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
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
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
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
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
The port to set
Returns
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
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
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
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
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
readonlystatus:NodeStatus
Defined in: packages/chaingraph-types/src/node/interfaces/icore-node.ts:24
Current execution status of the node
Inherited from
INodeComposite.status
storage
readonlystorage: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
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
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