// index.js const RateLimiter = require('./lib/rateLimiter'); // Middleware wrapper for Express.js or any other Node.js framework const rateLimiterMiddleware = (options) => { const limiter = new RateLimiter(options); return (req, res, next) => { const clientId = req.ip; // Use IP-based rate limiting const result = limiter.handleRequest(clientId); if (!result.allowed) { return res.status(429).json({ message: 'Too many requests. Please try again later.', retryAfter: result.remainingTime / 1000, // Retry after (seconds) }); } // If allowed, proceed to the next middleware or route handler next(); }; }; module.exports = rateLimiterMiddleware;