Skip to content

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

Class: AnyPort ​

Defined in: packages/chaingraph-types/src/port/instances/AnyPort.ts:48

Concrete implementation of an Any Port.

This class extends BasePort using AnyPortConfig and AnyPortValue. It leverages the AnyPortPlugin to handle validation, serialization, and deserialization by delegating to the underlying port type's plugin.

The Any port acts as a wrapper around any other port type. Its configuration includes an underlyingType field that specifies which port type to use, and all operations are delegated to that type's plugin.

Example usage: const config: AnyPortConfig = { type: 'any', underlyingType: { type: 'string', minLength: 2, }, defaultValue: { type: 'any', value: { type: 'string', value: 'hello' }, }, }

const anyPort = new AnyPort(config) anyPort.setValue({ type: 'any', value: { type: 'string', value: 'world' }, }) console.log(anyPort.getValue()) // => { type: 'any', value: { type: 'string', value: 'world' } }

Extends ​

Implements ​

Constructors ​

Constructor ​

new AnyPort(config): AnyPort

Defined in: packages/chaingraph-types/src/port/instances/AnyPort.ts:50

Parameters ​

config ​

AnyPortConfig

Returns ​

AnyPort

Overrides ​

BasePort.constructor

Properties ​

config ​

protected config: AnyPortConfig

Defined in: packages/chaingraph-types/src/port/base/BasePort.ts:16

Inherited from ​

BasePort.config


value? ​

protected optional value: any

Defined in: packages/chaingraph-types/src/port/base/BasePort.ts:17

Inherited from ​

BasePort.value

Accessors ​

id ​

Get Signature ​

get id(): string

Defined in: packages/chaingraph-types/src/port/base/BasePort.ts:25

The unique identifier of the port.

Returns ​

string

Implementation of ​

IPort.id

Inherited from ​

BasePort.id


key ​

Get Signature ​

get key(): string

Defined in: packages/chaingraph-types/src/port/base/BasePort.ts:29

The key of the port.

Returns ​

string

Implementation of ​

IPort.key

Inherited from ​

BasePort.key

Methods ​

addConnection() ​

addConnection(nodeId, portId): void

Defined in: packages/chaingraph-types/src/port/base/BasePort.ts:153

Adds a connection to the port metadata.

Parameters ​

nodeId ​

string

The ID of the node to connect to.

portId ​

string

The ID of the port to connect to.

Returns ​

void

Implementation of ​

IPort.addConnection

Inherited from ​

BasePort.addConnection


clone() ​

clone(): IPort<AnyPortConfig>

Defined in: packages/chaingraph-types/src/port/base/BasePort.ts:130

Clones the port instance.

Returns ​

IPort<AnyPortConfig>

A new port instance with the same configuration and value.

Implementation of ​

IPort.clone

Inherited from ​

BasePort.clone


cloneWithNewId() ​

cloneWithNewId(): IPort<AnyPortConfig>

Defined in: packages/chaingraph-types/src/port/instances/AnyPort.ts:302

Clones the port with a new ID. Useful for creating copies of the port with a unique identifier.

Returns ​

IPort<AnyPortConfig>

Implementation of ​

IPort.cloneWithNewId

Overrides ​

BasePort.cloneWithNewId


deserialize() ​

deserialize(data): IPort<AnyPortConfig>

Defined in: packages/chaingraph-types/src/port/base/BasePort.ts:79

Deserializes the given JSONValue (expected to hold { config, value }) and updates both the config and current value.

Parameters ​

data ​

unknown

Returns ​

IPort<AnyPortConfig>

Implementation of ​

IPort.deserialize

Inherited from ​

BasePort.deserialize


deserializeConfig() ​

deserializeConfig(data): AnyPortConfig

Defined in: packages/chaingraph-types/src/port/instances/AnyPort.ts:254

Deserializes JSON data into an AnyPortConfig. Delegates to AnyPortPlugin.deserializeConfig which handles deserializing both the any port config and the underlying type's config.

Parameters ​

data ​

unknown

The JSON data.

Returns ​

AnyPortConfig

The deserialized configuration.

Implementation of ​

IPort.deserializeConfig

Overrides ​

BasePort.deserializeConfig


deserializeValue() ​

deserializeValue(data): any

Defined in: packages/chaingraph-types/src/port/instances/AnyPort.ts:265

Deserializes JSON data into an AnyPortValue. Delegates to AnyPortPlugin.deserializeValue which handles deserializing both the any port value and the underlying value.

Parameters ​

data ​

unknown

The JSON data.

Returns ​

any

The deserialized port value.

Implementation of ​

IPort.deserializeValue

Overrides ​

BasePort.deserializeValue


getConfig() ​

getConfig(): AnyPortConfig

Defined in: packages/chaingraph-types/src/port/instances/AnyPort.ts:60

Returns ​

AnyPortConfig

The port configuration of type C.

Implementation of ​

IPort.getConfig

Overrides ​

BasePort.getConfig


getDefaultValue() ​

getDefaultValue(): any

Defined in: packages/chaingraph-types/src/port/instances/AnyPort.ts:99

Returns the default value from the configuration.

Returns ​

any

The default AnyPortValue if specified; otherwise undefined.

Implementation of ​

IPort.getDefaultValue

Overrides ​

BasePort.getDefaultValue


getRawConfig() ​

getRawConfig(): AnyPortConfig

Defined in: packages/chaingraph-types/src/port/instances/AnyPort.ts:91

Returns ​

AnyPortConfig


getValue() ​

getValue(): any

Defined in: packages/chaingraph-types/src/port/base/BasePort.ts:42

Gets the current port value.

Returns ​

any

The port value, or undefined if none is set.

Implementation of ​

IPort.getValue

Inherited from ​

BasePort.getValue


isSystem() ​

isSystem(): boolean

Defined in: packages/chaingraph-types/src/port/base/BasePort.ts:138

Check if the port is a system port.

Returns ​

boolean

True if the port is a system port, otherwise false.

Implementation of ​

IPort.isSystem

Inherited from ​

BasePort.isSystem


isSystemError() ​

isSystemError(): boolean

Defined in: packages/chaingraph-types/src/port/base/BasePort.ts:142

Check if the port is a system error port.

Returns ​

boolean

True if the port is a system error port, otherwise false.

Implementation of ​

IPort.isSystemError

Inherited from ​

BasePort.isSystemError


removeConnection() ​

removeConnection(nodeId, portId): void

Defined in: packages/chaingraph-types/src/port/base/BasePort.ts:179

Removes a connection from the port metadata.

Parameters ​

nodeId ​

string

The ID of the node to disconnect from.

portId ​

string

The ID of the port to disconnect from.

Returns ​

void

Implementation of ​

IPort.removeConnection

Inherited from ​

BasePort.removeConnection


reset() ​

reset(): void

Defined in: packages/chaingraph-types/src/port/base/BasePort.ts:50

Resets the port’s current value.

In typical implementations, this resets the value to a default (if available).

Returns ​

void

Implementation of ​

IPort.reset

Inherited from ​

BasePort.reset


serialize() ​

serialize(): unknown

Defined in: packages/chaingraph-types/src/port/base/BasePort.ts:59

Serializes both config and value into a JSONValue–compatible object. It calls the abstract serializeConfig and serializeValue methods.

Returns ​

unknown

Implementation of ​

IPort.serialize

Inherited from ​

BasePort.serialize


serializeConfig() ​

serializeConfig(config): unknown

Defined in: packages/chaingraph-types/src/port/instances/AnyPort.ts:232

Serializes the any port configuration. Delegates to AnyPortPlugin.serializeConfig which handles serializing both the any port config and the underlying type's config.

Parameters ​

config ​

AnyPortConfig

The any port configuration.

Returns ​

unknown

The serialized configuration.

Implementation of ​

IPort.serializeConfig

Overrides ​

BasePort.serializeConfig


serializeValue() ​

serializeValue(value): unknown

Defined in: packages/chaingraph-types/src/port/instances/AnyPort.ts:243

Serializes the any port value. Delegates to AnyPortPlugin.serializeValue which handles serializing both the any port value and the underlying value.

Parameters ​

value ​

any

The any port value.

Returns ​

unknown

The serialized value.

Implementation of ​

IPort.serializeValue

Overrides ​

BasePort.serializeValue


setConfig() ​

setConfig(newConfig): void

Defined in: packages/chaingraph-types/src/port/base/BasePort.ts:37

Updates the port configuration with a new configuration object.

Parameters ​

newConfig ​

AnyPortConfig

New configuration of type C.

Returns ​

void

Implementation of ​

IPort.setConfig

Inherited from ​

BasePort.setConfig


setUnderlyingType() ​

setUnderlyingType(underlyingType): void

Defined in: packages/chaingraph-types/src/port/instances/AnyPort.ts:274

Sets the underlying type of the any port. This method allows changing the underlying type dynamically.

Parameters ​

underlyingType ​

The new underlying type configuration.

IPortConfig | undefined

Returns ​

void


setValue() ​

setValue(newValue): void

Defined in: packages/chaingraph-types/src/port/instances/AnyPort.ts:103

Sets or updates the port value. The value must be validated before being accepted.

Parameters ​

newValue ​

any

The new value to set for the port.

Returns ​

void

Implementation of ​

IPort.setValue

Overrides ​

BasePort.setValue


unwrap() ​

unwrap(): IPort<AnyPortConfig>

Defined in: packages/chaingraph-types/src/port/base/BasePort.ts:237

Unwrap to get underlying port instance For regular ports, returns this (already unwrapped)

Returns ​

IPort<AnyPortConfig>

Implementation of ​

IPort.unwrap

Inherited from ​

BasePort.unwrap


unwrapUnderlyingType() ​

unwrapUnderlyingType(): IPortConfig | undefined

Defined in: packages/chaingraph-types/src/port/instances/AnyPort.ts:282

Unwraps the underlying type of the any port. It is iterates over the underlying types and while the underlying type is 'any' and has an underlyingType, it will return the actual underlying type.

Returns ​

IPortConfig | undefined


validate() ​

validate(): boolean

Defined in: packages/chaingraph-types/src/port/base/BasePort.ts:118

Validates both the current configuration and value. It defers to the abstract validateConfig and validateValue methods.

Returns ​

boolean

Implementation of ​

IPort.validate

Inherited from ​

BasePort.validate


validateConfig() ​

validateConfig(config): boolean

Defined in: packages/chaingraph-types/src/port/instances/AnyPort.ts:220

Validates the any port configuration. Delegates to AnyPortPlugin.validateConfig which validates both the any port structure and the underlying type's configuration.

Parameters ​

config ​

AnyPortConfig

The any port configuration.

Returns ​

boolean

True if valid; otherwise false.

Implementation of ​

IPort.validateConfig

Overrides ​

BasePort.validateConfig


validateValue() ​

validateValue(value): boolean

Defined in: packages/chaingraph-types/src/port/instances/AnyPort.ts:208

Validates the any port value. Delegates to AnyPortPlugin.validateValue which in turn delegates to the underlying type's plugin for value validation.

Parameters ​

value ​

any

The any port value to validate.

Returns ​

boolean

True if valid; otherwise false.

Implementation of ​

IPort.validateValue

Overrides ​

BasePort.validateValue

Licensed under BUSL-1.1