Skip to content

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

Class: ObjectPort<S> ​

Defined in: packages/chaingraph-types/src/port/instances/ObjectPort.ts:79

Concrete implementation of an Object Port.

This class extends BasePort using ObjectPortConfig<S> and ObjectPortValue<S>. It leverages the ObjectPortPlugin to handle default value resolution, validation, serialization, and deserialization.

The port is generic over S (which extends ObjectSchema) so that the types of nested properties can be inferred. When using the helper functions below, your IDE will provide full autocompletion for the nested values.

Example usage:

// Using the helper functions to build a schema and config: const userSchema = createObjectSchema({ name: { type: 'string', minLength: 2 }, age: { type: 'number', min: 21 }, address: { type: 'object', schema: createObjectSchema({ street: { type: 'string' }, city: { type: 'string' }, state: { type: 'string' }, }), }, })

const userConfig = createObjectPortConfig({ type: 'object', schema: userSchema, defaultValue: { type: 'object', value: { name: { type: 'string', value: 'Alice' }, age: { type: 'number', value: 30 }, address: { type: 'object', value: { street: { type: 'string', value: '123 Main St' }, city: { type: 'string', value: 'Springfield' }, state: { type: 'string', value: 'IL' }, }, }, }, }, })

const userPort = new ObjectPort(userConfig) // The IDE now knows that userPort.getValue() returns an object // whose "value" property has both "name" and "age" with proper types. console.log(userPort.getValue()?.value.name.value) // 'Alice' console.log(userPort.getValue()?.value.address.value.state.value) // 'IL'

Extends ​

Type Parameters ​

S ​

S extends IObjectSchema = IObjectSchema

The object schema type (extending ObjectSchema) used in the configuration.

Implements ​

Constructors ​

Constructor ​

new ObjectPort<S>(config): ObjectPort<S>

Defined in: packages/chaingraph-types/src/port/instances/ObjectPort.ts:82

Parameters ​

config ​

ObjectPortConfig<S>

Returns ​

ObjectPort<S>

Overrides ​

BasePort.constructor

Properties ​

config ​

protected config: ObjectPortConfig

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

Inherited from ​

BasePort.config


value? ​

protected optional value: ObjectPortValue<S>

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


addField() ​

addField(field, config): void

Defined in: packages/chaingraph-types/src/port/instances/ObjectPort.ts:268

Adds a new field to the object schema and updates the default and current values.

Parameters ​

field ​

string

config ​

IPortConfig

Returns ​

void


clone() ​

clone(): IPort<ObjectPortConfig<S>>

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

Clones the port instance.

Returns ​

IPort<ObjectPortConfig<S>>

A new port instance with the same configuration and value.

Implementation of ​

IPort.clone

Inherited from ​

BasePort.clone


cloneWithNewId() ​

cloneWithNewId(): IPort<ObjectPortConfig<S>>

Defined in: packages/chaingraph-types/src/port/instances/ObjectPort.ts:328

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

Returns ​

IPort<ObjectPortConfig<S>>

Implementation of ​

IPort.cloneWithNewId

Overrides ​

BasePort.cloneWithNewId


deserialize() ​

deserialize(data): IPort<ObjectPortConfig<S>>

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<ObjectPortConfig<S>>

Implementation of ​

IPort.deserialize

Inherited from ​

BasePort.deserialize


deserializeConfig() ​

deserializeConfig(data): ObjectPortConfig<S>

Defined in: packages/chaingraph-types/src/port/instances/ObjectPort.ts:249

Deserializes JSON data into an ObjectPortConfig. Delegates to ObjectPortPlugin.deserializeConfig.

Parameters ​

data ​

unknown

The JSON data.

Returns ​

ObjectPortConfig<S>

The deserialized configuration.

Implementation of ​

IPort.deserializeConfig

Overrides ​

BasePort.deserializeConfig


deserializeValue() ​

deserializeValue(data): ObjectPortValue<S>

Defined in: packages/chaingraph-types/src/port/instances/ObjectPort.ts:259

Deserializes JSON data into an ObjectPortValue. Delegates to ObjectPortPlugin.deserializeValue.

Parameters ​

data ​

unknown

The JSON data.

Returns ​

ObjectPortValue<S>

The deserialized port value.

Implementation of ​

IPort.deserializeValue

Overrides ​

BasePort.deserializeValue


getConfig() ​

getConfig(): ObjectPortConfig

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

Retrieves the current port configuration.

Returns ​

ObjectPortConfig

The port configuration of type C.

Implementation of ​

IPort.getConfig

Inherited from ​

BasePort.getConfig


getDefaultValue() ​

getDefaultValue(): ObjectPortValue<S>

Defined in: packages/chaingraph-types/src/port/instances/ObjectPort.ts:96

Retrieves the default value from the configuration.

Returns ​

ObjectPortValue<S>

The default ObjectPortValue if specified; otherwise undefined.

Implementation of ​

IPort.getDefaultValue

Overrides ​

BasePort.getDefaultValue


getValue() ​

getValue(): ObjectPortValue<S>

Defined in: packages/chaingraph-types/src/port/instances/ObjectPort.ts:104

Optionally, override getValue() to indicate that it returns a fully typed ObjectPortValue.

Returns ​

ObjectPortValue<S>

The current port value.

Implementation of ​

IPort.getValue

Overrides ​

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


removeField() ​

removeField(field): void

Defined in: packages/chaingraph-types/src/port/instances/ObjectPort.ts:307

Remove a field from the object schema and updates the default and current values.

Parameters ​

field ​

string

Returns ​

void


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/ObjectPort.ts:229

Serializes the object port configuration. Delegates to ObjectPortPlugin.serializeConfig.

Parameters ​

config ​

ObjectPortConfig<S>

The object 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/ObjectPort.ts:239

Serializes the object port value. Delegates to ObjectPortPlugin.serializeValue.

Parameters ​

value ​

ObjectPortValue<S>

The object 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 ​

ObjectPortConfig

New configuration of type C.

Returns ​

void

Implementation of ​

IPort.setConfig

Inherited from ​

BasePort.setConfig


setValue() ​

setValue(newValue): void

Defined in: packages/chaingraph-types/src/port/instances/ObjectPort.ts:108

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

Parameters ​

newValue ​

ObjectPortValue<S>

The new value to set for the port.

Returns ​

void

Implementation of ​

IPort.setValue

Overrides ​

BasePort.setValue


unwrap() ​

unwrap(): IPort<ObjectPortConfig<S>>

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<ObjectPortConfig<S>>

Implementation of ​

IPort.unwrap

Inherited from ​

BasePort.unwrap


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/ObjectPort.ts:218

Validates the object port configuration. Delegates to ObjectPortPlugin.validateConfig.

Parameters ​

config ​

ObjectPortConfig<S>

The object 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/ObjectPort.ts:207

Validates the object port value. Delegates to ObjectPortPlugin.validateValue.

Parameters ​

value ​

ObjectPortValue<S>

The object port value.

Returns ​

boolean

True if valid; otherwise false.

Implementation of ​

IPort.validateValue

Overrides ​

BasePort.validateValue

Licensed under BUSL-1.1