limiter.js
Version:
limiter.js is a Node.js/TypeScript library that provides simple Rate limiter protection for Express applications. It tracks requests per IP address and enforces rate limits within a sliding time window. If an IP exceeds the allowed requests, limiter.js ca
19 lines (18 loc) • 598 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.expressGuardMiddleware = void 0;
const expressGuardMiddleware = (detector) => (req, res, next) => {
const ip = req.ip || req.connection.remoteAddress || "unknown";
const result = detector.handleRequest(ip);
detector.logIPStatus(ip);
if (result.blocked) {
res.status(429).send({
error: "Too many requests",
reason: result.reason || "Rate limit exceeded",
});
}
else {
next();
}
};
exports.expressGuardMiddleware = expressGuardMiddleware;