1.0.1 • Published 6 months ago

cors-kit v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
6 months ago

cors-kit

cors-kit is a lightweight custom CORS middleware for Node.js, designed to be used with Express.js applications.

Installation

Install cors-kit using npm:

npm install cors-kit

Basic Setup

Import and use cors-kit in your Express application:

import express from "express";
import cors from "cors-kit";

const app = express();

// Enable CORS with default settings
app.use(cors());

app.get("/", (req, res) => {
  res.json({ message: "CORS enabled!" });
});

app.listen(3000, () => console.log("Server running on port 3000"));

Custom Configuration

You can customize cors-kit by passing an options object:

app.use(
  cors({
    origin: ["https://example.com", "https://another.com"],
    methods: "GET,POST", // Allow only GET and POST requests
    headers: "Content-Type, Authorization", // Allow specific headers
    credentials: true, // Enable cookies and authorization headers
  })
);

Options

The middleware accepts the following options:

OptionTypeDefault ValueDescription
originstring, string[], Function"*"Specifies allowed origins. Accepts a string, an array of strings, or a function.
methodsstring, string[]["GET", "HEAD", "PUT", "PATCH", "POST", "DELETE"]Specifies allowed HTTP methods.
headersstring, string[]"*"Specifies allowed request headers.
credentialsbooleanfalseIf true, includes Access-Control-Allow-Credentials: true in the response.

Handling Preflight Requests

CORS preflight requests (OPTIONS method) are automatically handled:

app.options("/api", cors()); // Enable preflight for specific route

Example: Dynamic Origin

You can use a function to dynamically determine the allowed origin:

app.use(
  cors({
    origin: (origin, callback) => {
      const allowedOrigins = ["https://trusted.com", "https://secure.com"];
      if (!origin || allowedOrigins.includes(origin)) {
        callback(null, origin);
      } else {
        callback(new Error("Not allowed by CORS"));
      }
    },
  })
);

Why Use cors-kit?

  • 🏗 Lightweight: Smaller and more efficient than the cors package.
  • 🚀 Easy to Use: Simple API with intuitive configuration.
  • 🔄 Flexible: Supports dynamic origin handling and custom options.
  • Automatic Preflight Handling: Seamlessly processes OPTIONS requests.

License

MIT License

1.0.1

6 months ago