Skip to content

@yantrix/automata v0.5.2 • Docs


Yantrix API / @yantrix/automata / IDataDestination

Interface: IDataDestination<EventType, EventMetaType, DataModel, DataPacketType, ResolveResultType, ErrorType> ​

Interface for dispatching data updates to external destinations with given rules and/or on specific events

Extends ​

Type Parameters ​

• EventType extends TAutomataBaseEventType

The base type of accepted events

• EventMetaType extends { [K in EventType]: any } = Record<EventType, any>

The metadata shape mapping for each event type

• DataModel extends object | null = object | null

The input data type (extends object | null)

• DataPacketType extends object = object

The data packet type for this destination

• ResolveResultType = void

An arbitrary type that is returned by transaction that actually delivers data

• ErrorType = Error

exception type

Properties ​

createTrigger() ​

ts
createTrigger: (events, selector) => this;

Bind an update trigger to specific events, creating a data packet from Model diff

Parameters ​

• events: null | EventType[]

Event types to bind the selector to. Null means all events

• selector: TDataBoundSelector<EventType, EventMetaType, DataPacketType, DataModel>

Function that extracts Data Packet from Events and/or global Data Model

Returns ​

this

This destination instance


getBoundEvents() ​

ts
getBoundEvents: () => (null | EventType)[];

Get all events that have triggers bound to them.

Returns ​

(null | EventType)[]

Array of event types that have triggers bound to them. Null means all events.


getTriggers() ​

ts
getTriggers: () => TDataBoundEventDictionary<EventType, EventMetaType, DataPacketType, DataModel>;

Get all registered triggers

Returns ​

TDataBoundEventDictionary<EventType, EventMetaType, DataPacketType, DataModel>

Mapping of event types to their selector functions


isActive() ​

ts
isActive: () => boolean;

Check if processing is active

Returns ​

boolean

True if actively processing data

Inherited from ​

IAgnosticDataDestination.isActive


removeTrigger() ​

ts
removeTrigger: (events) => this;

Remove a previously registered trigger

Parameters ​

• events: null | EventType[]

Event types to remove the selector from. Null means all events

Returns ​

this

This destination instance


requestEmitter() ​

ts
requestEmitter: () => Generator<null | TDataDestinationOutput<DataPacketType, ResolveResultType, ErrorType>, any, any>;

Returns an iterator over the data packets actually dispatched to the destination.

Returns ​

Generator<null | TDataDestinationOutput<DataPacketType, ResolveResultType, ErrorType>, any, any>

An iterator over data packets and dispatch results

Inherited from ​

IAgnosticDataDestination.requestEmitter


send() ​

ts
send: (data) => Promise<null | ResolveResultType>;

Directly send a packet to the destination

Parameters ​

• data: DataPacketType

data packet to dispatch

Returns ​

Promise<null | ResolveResultType>

Promise resolved with declared resolve type

Inherited from ​

IAgnosticDataDestination.send


start() ​

ts
start: () => this;

Start/resume data processing

Returns ​

this

This destination instance

Inherited from ​

IAgnosticDataDestination.start


stop() ​

ts
stop: () => this;

Stop/pause data processing

Returns ​

this

This destination instance

Inherited from ​

IAgnosticDataDestination.stop


update() ​

ts
update: (event, model?) => null | DataPacketType[];

dispatch the event to destination, invoking all attached triggers and updating the destination

Parameters ​

• event: TAutomataEventMetaType<EventType, EventMetaType>

Event to process

• model?: DataModel

New data model to process

Returns ​

null | DataPacketType[]

This sent data packet