Skip to content

chubbyts/chubbyts-http-cors

Repository files navigation

chubbyts-http-cors

CI Coverage Status Mutation testing badge npm-version

bugs code_smells coverage duplicated_lines_density ncloc sqale_rating alert_status reliability_rating security_rating sqale_index vulnerabilities

Description

A CORS middleware for @chubbyts/chubbyts-http-types.

Apply toLowerCase() to each related request header name before pass the request to this middleware.

Requirements

Installation

Through NPM as @chubbyts/chubbyts-http-cors.

npm i @chubbyts/chubbyts-http-cors@^1.2.1

Usage

import { createCorsMiddleware } from '@chubbyts/chubbyts-http-cors/dist/middleware';
import {
  createAllowOriginRegex,
  createHeadersNegotiator,
  createMethodNegotiator,
  createOriginNegotiator,
} from '@chubbyts/chubbyts-http-cors/dist/negotiation';
import { createResponseFactory } from '@chubbyts/chubbyts-http/dist/message-factory';
import { Method } from '@chubbyts/chubbyts-http-types/dist/message';

const corsMiddleware = createCorsMiddleware(
  createResponseFactory(),
  createOriginNegotiator([createAllowOriginRegex(/^https?\:\/\/localhost(\:\d+)?$/)]),
  createMethodNegotiator([Method.GET, Method.POST, Method.PUT, Method.DELETE]),
  createHeadersNegotiator(['Content-Type', 'Accept']),
);

(async () => {
  const response = await corsMiddleware(request, handler);
})();

Copyright

2024 Dominik Zogg

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published