auto-cors-diagnose
v0.2.0
Published
Automatic CORS issue analyzer with clear explanations and actionable solutions.
Maintainers
Readme
auto-cors-diagnose
Automatic CORS issue analyzer with clear explanations and actionable solutions.
auto-cors-diagnose is a CLI and Node.js library that helps developers automatically analyze CORS (Cross-Origin Resource Sharing) issues.
It performs a preflight OPTIONS request and inspects response headers to determine whether the API supports cross-origin access — and if not, it provides clear explanations and solutions.
Perfect for:
- Frontend developers dealing with CORS errors
- Backend developers verifying API configuration
- QA engineers validating endpoints
- Students learning CORS behavior
✨ Features
- 🔍 Automatic CORS analysis for any API endpoint
- ⚠ Detects missing or invalid CORS headers
- 🧠 Provides actionable recommendations
- 💻 Works as both CLI and library
- 🚀 Lightweight and dependency-free
📦 Installation
Install globally:
npm install -g auto-cors-diagnoseOr use NPX without installation:
npx auto-cors-diagnose <url>💻 CLI Usage
Check CORS configuration of an API:
npx auto-cors-diagnose https://dummyjson.com/productsExample output:
{
"status": "OK",
"details": "CORS headers detected.",
"rawHeaders": {
"access-control-allow-origin": "*",
"access-control-allow-methods": "GET,HEAD,PUT,PATCH,POST,DELETE"
}
}Failure example:
{
"status": "CORS_BLOCKED",
"reason": "missing-allow-origin",
"details": "Access-Control-Allow-Origin header not found.",
"solution": "Add 'Access-Control-Allow-Origin: *' or specify allowed domains."
}🧑💻 Library Usage (Node.js)
import { diagnoseCors } from "auto-cors-diagnose";
const result = await diagnoseCors("https://dummyjson.com/products");
console.log(result);📁 Project Structure
auto-cors-diagnose
├─ bin/ # CLI launcher
├─ dist/ # Compiled JavaScript
├─ src/ # TypeScript source code
│ ├─ core/
│ ├─ utils/
│ └─ cli.ts
└─ tests/ # Vitest tests🧪 Running Tests
npm run test🤝 Contributing
Contributions are welcome! Please use:
dev branch → development
feat/<feature-name> → new features📄 License
This project is released under the MIT License © 2025 Kikuk Afandi.
