Skip to main content

CorsFramework

@h4ad/serverless-adapter > CorsFramework

(class) CorsFramework

The framework that handles cors for your api without relying on internals of the framework

Signature:

export declare class CorsFramework<TApp> implements FrameworkContract<TApp> 

Implements: FrameworkContract <TApp>

Example

import express from 'express';
import \{ ServerlessAdapter } from '@h4ad/serverless-adapter';
import \{ ExpressFramework } from '@h4ad/serverless-adapter/lib/frameworks/express';
import \{ CorsFramework } from '@h4ad/serverless-adapter/lib/frameworks/cors';

const expressFramework = new ExpressFramework();
const options: CorsOptions = \{}; // customize the options
const framework = new CorsFramework(expressFramework, options);

export const handler = ServerlessAdapter.new(null)
.setFramework(framework)
// set other configurations and then build
.build();

(constructor)

Default Constructor

Signature:

constructor(framework: FrameworkContract<TApp>, options?: CorsFrameworkOptions | undefined);

Parameters

Parameter

Type

Description

framework

FrameworkContract <TApp>

options

CorsFrameworkOptions | undefined

(Optional)

(property) cachedCorsInstance

The cached instance of cors

Signature:

protected readonly cachedCorsInstance: ReturnType<typeof cors>;

(property) corsHeaders

All cors headers that can be added by cors package

Signature:

protected readonly corsHeaders: string[];

(method) formatHeaderValuesAddedByCorsPackage

Format the headers to be standardized with the rest of the library, such as ApiGatewayV2. Also, some frameworks don't support headers as an array, so we need to format the values.

Signature:

protected formatHeaderValuesAddedByCorsPackage(response: ServerResponse): void;

Parameters

Parameter

Type

Description

response

ServerResponse

Returns:

void

(property) framework

Signature:

protected readonly framework: FrameworkContract<TApp>;

(method) isInvalidOriginOrMethodIsNotAllowed

Check if the origin is invalid or if the method is not allowed. Highly inspired by [access-control](https://github.com/primus/access-control/blob/master/index.js\#L95-L115)

Signature:

protected isInvalidOriginOrMethodIsNotAllowed(request: IncomingMessage, allowedOrigin: number | string | string[] | undefined): boolean;

Parameters

Parameter

Type

Description

request

IncomingMessage

allowedOrigin

number | string | string[] | undefined

Returns:

boolean

(method) onCorsNext

Handle next execution called by the cors package

Signature:

protected onCorsNext(app: TApp, request: IncomingMessage, response: ServerResponse): () => void;

Parameters

Parameter

Type

Description

app

TApp

request

IncomingMessage

response

ServerResponse

Returns:

() => void

(property) options

Signature:

protected readonly options?: CorsFrameworkOptions | undefined;

(method) sendRequest

Signature:

sendRequest(app: TApp, request: IncomingMessage, response: ServerResponse): void;

Parameters

Parameter

Type

Description

app

TApp

request

IncomingMessage

response

ServerResponse

Returns:

void