@teamsight/flight
Version:
Lambda life cycles
16 lines (15 loc) • 842 B
TypeScript
import "reflect-metadata";
import { Context } from "aws-lambda";
export interface IHandler<TEvent = any, TResult = any> {
execute(event: TEvent, context: Context): Promise<TResult>;
}
export declare abstract class Handler<TEvent, TResult> implements IHandler<TEvent, TResult> {
execute(event: TEvent, context: Context): Promise<TResult>;
protected validateEvent(event: TEvent): Promise<TEvent>;
protected preRun(event: TEvent, context: Context): Promise<void>;
protected postRun(event: TEvent, context: Context): Promise<void>;
protected abstract run(event: TEvent, context: Context): Promise<TResult>;
protected abstract processEvent(event: TEvent): Promise<TEvent>;
protected abstract processResponse(response: TResult): Promise<TResult>;
protected abstract processError(err: Error): Promise<TResult>;
}