UNPKG

lemon-core

Version:
80 lines (79 loc) 2.63 kB
import { NextContext, NextHandler, NextIdentity } from 'lemon-model'; import { LambdaHandler, ALBHandler, LambdaSubHandler, ALBEvent, ALBResult, Context } from './lambda-handler'; import { HttpHeaderSet, HttpHeaderTool, MyHttpHeaderTool } from './lambda-web-handler'; import * as $lambda from 'aws-lambda'; /** * ALB Next Handler */ export declare type ALBNextHandler = NextHandler<LambdaALBHandler, ALBResult, ALBEvent>; /** * ALB Original Request Context */ export declare type ALBEventRequestContext = $lambda.ALBEventRequestContext; /** * ALB Http Header Tool */ export declare class ALBHttpHeaderTool implements HttpHeaderTool<ALBEventRequestContext> { protected tool: MyHttpHeaderTool; constructor(headers: HttpHeaderSet, options?: { isClone?: boolean; }); hello(): string; getHeaders(name: string): string[]; getHeader(name: string): string; parseIdentityHeader(name?: string): Promise<NextIdentity>; parseLanguageHeader(name?: string): string; parseCookiesHeader(name?: string): { [key: string]: string; }; prepareContext($org: NextContext, reqContext: ALBEventRequestContext): Promise<NextContext>; onlyDefined<T extends object>(obj: T): T; } /** * class: LambdaALBHandler * - default ALB Handler w/ event-listeners. */ export declare class LambdaALBHandler extends LambdaSubHandler<ALBHandler> { /** * default constructor w/ registering self. */ constructor(lambda: LambdaHandler, register?: boolean); /** say hello */ hello(): string; /** the main handler */ protected handler: ALBNextHandler; /** * set handler of alb-event. * @param handler */ setHandler(handler: ALBNextHandler): ALBNextHandler; /** * build response for ALB. * * @param statusCode status code like 200, 404, etc. * @param body any body to be returned. * @param options (optional) options for content-type and origin. * @returns ALBResult */ buildResponse(statusCode: number, body: any, options?: { contentType?: string; origin?: string; credentials?: boolean; }): ALBResult; /** * Default ALB Handler. */ handle: ALBHandler; /** * builder of tools for http-headers * - extracting header content, and parse. */ tools: (event: ALBEvent) => ALBHttpHeaderTool; /** * pack the request context for Http request. * * @param event origin Event. * @param orgContext (optional) original lambda.Context */ packContext(event: ALBEvent, orgContext?: Context): Promise<NextContext>; }