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