lemon-core
Version:
Lemon Serverless Micro-Service Platform
80 lines (79 loc) • 2.63 kB
TypeScript
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>;
}