UNPKG

svcorelib

Version:

Core library used in the projects of Sv443 and the Sv443 Network. Contains tons of miscellaneous QoL features.

32 lines (21 loc) 971 B
const http = require("http"); require("../unused")(http); const getClientEncoding = req => { if(!req || !(req instanceof http.IncomingMessage)) return "Error: parameter \"req\" is empty or not of type http.IncomingMessage - make sure you have used \"req\", not \"res\"!"; let selectedEncoding = null; let encodingPriority = [ "br", "gzip", "deflate", "compress", "identity" ]; encodingPriority = encodingPriority.reverse(); let acceptedEncodings = []; if(req.headers["accept-encoding"]) acceptedEncodings = req.headers["accept-encoding"].split(/\s*[,]\s*/gm); acceptedEncodings = acceptedEncodings.reverse(); encodingPriority.forEach(encPrio => { if(acceptedEncodings.includes(encPrio)) selectedEncoding = encPrio; }); if(selectedEncoding == null) selectedEncoding = "identity"; return selectedEncoding; } module.exports = getClientEncoding;