@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
TypeScript
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 {};