UNPKG

@distributed-functions/core

Version:
28 lines (27 loc) 1.44 kB
import { CallsRecord } from './call'; import { MessageFromEvent, Event, EventsRecord } from './event'; import { CallsToPublish, EventsToPublish } from './publishers'; export type PersistenceLevel = 'none' | 'single-node' | 'replication'; export type EventHandlerRun<E extends Event<any, any>, Ctx extends Record<any, any>, ER extends EventsRecord | undefined, CR extends CallsRecord | undefined> = (event: MessageFromEvent<E>, ctx: Ctx, transport: { call: CallsToPublish<CR extends CallsRecord ? CR : any>; event: EventsToPublish<ER extends EventsRecord ? ER : any>; }) => Promise<void>; export type EventHandler<E extends Event<any, any>, Ctx extends Record<any, any>, ER extends EventsRecord | undefined, CR extends CallsRecord | undefined> = { event: E; run: EventHandlerRun<E, Ctx, ER, CR>; handlerName: string; persistent?: PersistenceLevel; callsToPublish?: CR; eventsToPublish?: ER; isEventHandler: true; parallel?: number; }; export declare const EventHandler: <E extends Event<any, any>, Ctx extends Record<any, any>, ER extends EventsRecord | undefined, CR extends CallsRecord | undefined>(props: { event: E; callsToPublish?: CR | undefined; eventsToPublish?: ER | undefined; handlerName?: string | undefined; parallel?: number | undefined; persistent?: PersistenceLevel | undefined; run: EventHandlerRun<E, Ctx, ER, CR>; }) => EventHandler<E, Ctx, ER, CR>;