@chubbyts/chubbyts-http-cors

1.2.1 • Public • Published

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

Readme

Keywords

none

Package Sidebar

Install

npm i @chubbyts/chubbyts-http-cors

Weekly Downloads

48

Version

1.2.1

License

MIT

Unpacked Size

19.4 kB

Total Files

9

Last publish

Collaborators

  • dominikzogg