feat(events): Adds AcknowledgableEvent

This commit is contained in:
Michel Fedde 2025-06-22 15:51:14 +02:00
parent 6d7a0e7cfb
commit b82ab7dbc4
18 changed files with 228 additions and 77 deletions

View file

@ -0,0 +1,40 @@
import {AcknowledgableEvent} from "./AcknowledgableEvent";
export enum EventType {
Normal,
TimeBased,
Acknowledge,
}
export interface BaseEvent {
type: EventType
}
export interface NormalEvent extends BaseEvent {
type: EventType.Normal
}
export interface AcknowledgeEvent extends BaseEvent {
type: EventType.Acknowledge,
isAcknowledged(): boolean,
handleUnacknowledgement(): void
}
export type HandlerEvents = NormalEvent | AcknowledgeEvent
export interface TimedEvent extends BaseEvent {
type: EventType.TimeBased,
configuration: EventConfiguration,
cronExpression: string,
execute: () => void
}
export type EventConfiguration = {
name: string,
maxExecutions?: number,
}
export type EventEntry<T = any> = {
method: (event: T) => void,
persistent?: boolean
}