0.0.2 • Published 6 months ago

lite-cors v0.0.2

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

lite-cors

A lightweight CORS middleware for Node.js applications. lite-cors provides essential Cross-Origin Resource Sharing (CORS) capabilities while maintaining a minimal footprint, making it a great alternative to the cors package.

Installation

Install lite-cors using npm:

npm install lite-cors

Usage

Basic Setup

Import and use lite-cors in your Express application:

import express from "express";
import cors from "lite-cors";

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 lite-cors 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 lite-cors?

  • 🏗 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

0.0.2

6 months ago

0.0.1

6 months ago