Skip to content

@yantrix/automata v0.1.0Docs


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