Skip to main content

RequestLambdaEdgeAdapter

@h4ad/serverless-adapter > RequestLambdaEdgeAdapter

(class) RequestLambdaEdgeAdapter

The adapter to handle requests from AWS Lambda @ Edge of the type Viewer Request.

The idea of this Adapter is to you be able to expose your framework to the Edge, like when you build for Cloudfront.

Lambda edge docs Event Reference

Signature:

export declare class RequestLambdaEdgeAdapter implements AdapterContract<CloudFrontRequestEvent, Context, CloudFrontResultResponse> 

Implements: AdapterContract <CloudFrontRequestEvent, Context, CloudFrontResultResponse>

Example

const stripBasePath = '/api'; // in case you have configure the cloudfront to forward the path /api to your lambda
const adapter = new RequestLambdaEdgeAdapter(\{ stripBasePath });

(constructor)

Default constructor

Signature:

constructor(options?: RequestLambdaEdgeAdapterOptions | undefined);

Parameters

Parameter

Type

Description

options

RequestLambdaEdgeAdapterOptions | undefined

(Optional) The options to customize the RequestLambdaEdgeAdapter

(property) cachedDisallowedHeaders

This property is used to cache the disallowed headers in RegExp version, even if you provide a string in disallowedHeader , we will cache it in an instance of RegExp .

Signature:

protected readonly cachedDisallowedHeaders: RegExp[];

(method) canHandle

Signature:

canHandle(event: unknown): event is CloudFrontRequestEvent;

Parameters

Parameter

Type

Description

event

unknown

Returns:

event is CloudFrontRequestEvent

(method) getAdapterName

Signature:

getAdapterName(): string;

Returns:

string

(method) getFlattenedHeadersFromCloudfrontRequest

Returns the headers with the flattened (non-list) values of the cloudfront request headers

Signature:

protected getFlattenedHeadersFromCloudfrontRequest(cloudFrontRequest: CloudFrontRequest): SingleValueHeaders;

Parameters

Parameter

Type

Description

cloudFrontRequest

CloudFrontRequest

The cloudfront request

Returns:

SingleValueHeaders

(method) getHeadersForCloudfrontResponse

Returns headers in Cloudfront Response format.

Signature:

protected getHeadersForCloudfrontResponse(originalHeaders: BothValueHeaders): CloudFrontHeaders;

Parameters

Parameter

Type

Description

originalHeaders

BothValueHeaders

The original version of the request sent by the framework

Returns:

CloudFrontHeaders

(method) getRequest

Signature:

getRequest(event: CloudFrontRequestEvent): AdapterRequest;

Parameters

Parameter

Type

Description

event

CloudFrontRequestEvent

Returns:

AdapterRequest

(method) getResponse

Signature:

getResponse(\{ body, headers: frameworkHeaders, isBase64Encoded, statusCode, log, event, }: GetResponseAdapterProps<CloudFrontRequestEvent>): CloudFrontResultResponse;

Parameters

Parameter

Type

Description

{ body, headers: frameworkHeaders, isBase64Encoded, statusCode, log, event, }

GetResponseAdapterProps <CloudFrontRequestEvent>

Returns:

CloudFrontResultResponse

(method) onErrorWhileForwarding

Signature:

onErrorWhileForwarding(\{ error, delegatedResolver, respondWithErrors, log, event, }: OnErrorProps<CloudFrontRequestEvent, CloudFrontRequestResult>): void;

Parameters

Parameter

Type

Description

{ error, delegatedResolver, respondWithErrors, log, event, }

OnErrorProps <CloudFrontRequestEvent, CloudFrontRequestResult>

Returns:

void

(property) options

Signature:

protected readonly options?: RequestLambdaEdgeAdapterOptions | undefined;

(method) shouldStripHeader

Returns the information if we should remove the response header

Signature:

protected shouldStripHeader(headerKey: string): boolean;

Parameters

Parameter

Type

Description

headerKey

string

The header that will be tested

Returns:

boolean

(property) stripPathFn

Strip base path function

Signature:

protected readonly stripPathFn: StripBasePathFn;