UNPKG

@enter-at/lambda-handlers

Version:

An opinionated Typescript package that facilitates specifying AWS Lambda handlers including input validation, error handling and response formatting.

24 lines (23 loc) 2.41 kB
import { ALBEvent, ALBHandler, APIGatewayProxyEvent, APIGatewayProxyHandler, CloudFormationCustomResourceEvent, CloudFormationCustomResourceHandler, CloudFrontRequestHandler, CloudFrontResponseHandler, CloudWatchLogsEvent, CloudWatchLogsHandler, CloudWatchLogsLogEvent, CodePipelineCloudWatchActionHandler, CodePipelineCloudWatchHandler, CodePipelineCloudWatchPipelineHandler, CodePipelineCloudWatchStageHandler, CognitoUserPoolEvent, CognitoUserPoolTriggerHandler, Context, CustomAuthorizerEvent, CustomAuthorizerHandler, DynamoDBStreamEvent, DynamoDBStreamHandler, FirehoseTransformationHandler, KinesisStreamHandler, LexHandler, S3BatchEvent, S3BatchHandler, S3Event, S3Handler, ScheduledEvent, ScheduledHandler, SNSEvent, SNSHandler, SQSHandler } from "aws-lambda"; import { Format } from "../format/Format"; import { Logger } from "../logger"; export interface BaseHandlerArguments { inputFormat?: Format; outputFormat?: Format; logger?: Logger; } type Event = ALBEvent | APIGatewayProxyEvent | CloudFormationCustomResourceEvent | CloudWatchLogsEvent | CloudWatchLogsLogEvent | CognitoUserPoolEvent | CustomAuthorizerEvent | DynamoDBStreamEvent | S3BatchEvent | S3Event | SNSEvent | ScheduledEvent; type Handler = ALBHandler | APIGatewayProxyHandler | CloudFormationCustomResourceHandler | CloudFrontRequestHandler | CloudFrontResponseHandler | CloudWatchLogsHandler | CodePipelineCloudWatchActionHandler | CodePipelineCloudWatchHandler | CodePipelineCloudWatchPipelineHandler | CodePipelineCloudWatchStageHandler | CognitoUserPoolTriggerHandler | CustomAuthorizerHandler | DynamoDBStreamHandler | FirehoseTransformationHandler | KinesisStreamHandler | LexHandler | S3BatchHandler | S3Handler | SNSHandler | SQSHandler | ScheduledHandler; export declare abstract class BaseHandler { protected inputFormat: Format; protected outputFormat: Format; protected constructor(args?: BaseHandlerArguments); decorator(_target: unknown, _propertyName: string, propertyDescriptor: PropertyDescriptor): PropertyDescriptor; wrapper(method: (input: unknown, context: Context) => unknown): Handler; protected before(event: Event, context: Context): [unknown, Context]; protected after(output: unknown): unknown; protected onException(exception: Error): unknown; protected formatInput(input: Event): unknown; protected formatOutput(output: unknown): unknown; } export {};