/** * Response Compression Middleware * Compresses API responses to reduce payload size */ const compression = require("compression"); const compressionMiddleware = compression({ // Only compress responses larger than 1kb threshold: 1024, // Compression level (0-9, higher = better compression but slower) level: 6, // Filter function - don't compress already compressed formats filter: (req, res) => { if (req.headers["x-no-compression"]) { return false; } // Check content-type const contentType = res.getHeader("Content-Type"); if (!contentType) return compression.filter(req, res); // Don't compress images, videos, or already compressed formats if ( contentType.includes("image/") || contentType.includes("video/") || contentType.includes("application/zip") || contentType.includes("application/pdf") ) { return false; } return compression.filter(req, res); }, }); module.exports = compressionMiddleware;