UNPKG

@faceteer/cdk

Version:

CDK 2.0 constructs and helpers that make composing a Lambda powered service easier.

27 lines (26 loc) 1.21 kB
import { EventPattern } from 'aws-cdk-lib/aws-events'; import type { EventBridgeEvent, EventBridgeHandler } from 'aws-lambda'; import { AsyncHandler, HandlerDefinition, HandlerTypes } from './handler'; export interface EventHandlerDefinition extends HandlerDefinition { /** * Event handler name */ name: string; /** * Uses event bus name that is provided and configured within stack. */ eventBusName: string; /** * The event pattern in which to subscribe to. */ eventPattern: EventPattern; } export type EventHandlerEvent<T extends EventBridgeEvent<string, any>> = T; export interface EventHandlerOptions<T extends EventBridgeEvent<string, any>> extends EventHandlerDefinition { validator: (detail: EventBridgeEvent<string, any>) => T | void; } export type EventHandlerWithDefinition<T extends EventBridgeEvent<string, any>> = EventBridgeHandler<T['detail-type'], T['detail'], void> & { type: HandlerTypes.Event; definition: EventHandlerDefinition; }; export declare function EventHandler<T extends EventBridgeEvent<string, any>>(options: EventHandlerOptions<T>, handler: AsyncHandler<EventHandlerEvent<T>, void>): EventHandlerWithDefinition<T>;