@faceteer/cdk
Version:
CDK 2.0 constructs and helpers that make composing a Lambda powered service easier.
27 lines (26 loc) • 1.21 kB
TypeScript
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>;