pnp-scheduler/source/Events/EventHandler.types.ts

40 lines
799 B
TypeScript

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
}