class Saga

A saga!

Properties

errorHandler

Signature
errorHandler: (saga: any, event: EventicleEvent, error: Error) => Promise<void>;

eventHandler

Signature
eventHandler: Map<string, {
        config: HandlerConfig<any, InstanceData, TimeoutNames>;
        handle: (saga: SagaInstance<TimeoutNames, InstanceData>, event: EventicleEvent) => Promise<void>;
    }>;

name

Signature
readonly name: string;

parallelEventCount

Signature
parallelEventCount: number;

starts

Signature
starts: Map<string, {
        config: StartHandlerConfig<any, InstanceData, TimeoutNames>;
        handle: (saga: SagaInstance<TimeoutNames, InstanceData>, event: EventicleEvent) => Promise<void>;
    }>;

streams

Signature
streams: string[];

streamSubs

Signature
streamSubs: EventSubscriptionControl[];

timerHandler

Signature
timerHandler: Map<TimeoutNames, {
        handle: (saga: SagaInstance<TimeoutNames, InstanceData>) => Promise<void>;
    }>;

Constructors

(constructor)(name)

Constructs a new instance of the Saga class

Parameters
Name Type Description

name

string

Signature
constructor(name: string);

Methods

on(eventName, config, handler)

Parameters
Name Type Description

eventName

string

config

\~HandlerConfig<T, InstanceData, TimeoutNames>

handler

(saga: SagaInstance<TimeoutNames, InstanceData>, event: T) => Promise<void>

Returns

Saga<TimeoutNames, InstanceData>

Signature
on<T extends EventicleEvent>(eventName: string, config: HandlerConfig<T, InstanceData, TimeoutNames>, handler: (saga: SagaInstance<TimeoutNames, InstanceData>, event: T) => Promise<void>): Saga<TimeoutNames, InstanceData>;

onError(handler)

Parameters
Name Type Description

handler

(saga: any, event: EventicleEvent, error: Error) => Promise<void>

Returns

Saga<TimeoutNames, InstanceData>

Signature
onError(handler: (saga: any, event: EventicleEvent, error: Error) => Promise<void>): Saga<TimeoutNames, InstanceData>;

onTimer(name, handle)

Register a handler for a timer triggered saga step.

This will be called on the timer.

No event is present.

Parameters
Name Type Description

name

TimeoutNames

The name of the timer

handle

(saga: SagaInstance<TimeoutNames, InstanceData>) => Promise<void>

the async function to execute.

Returns

Saga<TimeoutNames, InstanceData>

Signature
onTimer(name: TimeoutNames, handle: (saga: SagaInstance<TimeoutNames, InstanceData>) => Promise<void>): Saga<TimeoutNames, InstanceData>;

parallelEvents(val)

Parameters
Name Type Description

val

number

Returns

Saga<TimeoutNames, InstanceData>

Signature
parallelEvents(val: number): Saga<TimeoutNames, InstanceData>;

startOn(eventName, config, handler)

Parameters
Name Type Description

eventName

string

config

\~StartHandlerConfig<T, InstanceData, TimeoutNames>

handler

(saga: SagaInstance<TimeoutNames, InstanceData>, event: T) => Promise<void>

Returns

Saga<TimeoutNames, InstanceData>

Signature
startOn<T extends EventicleEvent>(eventName: string, config: StartHandlerConfig<T, InstanceData, TimeoutNames>, handler: (saga: SagaInstance<TimeoutNames, InstanceData>, event: T) => Promise<void>): Saga<TimeoutNames, InstanceData>;

subscribeStreams(streams)

Parameters
Name Type Description

streams

string[]

Returns

Saga<TimeoutNames, InstanceData>

Signature
subscribeStreams(streams: string[]): Saga<TimeoutNames, InstanceData>;