connect-qos
Version:
Connect middleware that helps maintain a high quality of service during heavy traffic
38 lines (37 loc) • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
normalizeHost: function() {
return normalizeHost;
},
resolveHostFromRequest: function() {
return resolveHostFromRequest;
},
resolveIpFromRequest: function() {
return resolveIpFromRequest;
}
});
const HOST_NORMALIZE_REGEX = /(^www\.)?([^:]+)(:\d+)?$/;
function normalizeHost(host) {
const match = HOST_NORMALIZE_REGEX.exec(host.toLowerCase());
return match ? match[2] : host;
}
function resolveHostFromRequest(req) {
const authority = req.headers[':authority'];
return normalizeHost(authority || req.headers.host || 'unknown');
}
function resolveIpFromRequest(req, behindProxy = false) {
// for security reasons, we should never ASSUME the server is behind a proxy
// and only support `x-forwarded-for` is explicitly enabled
const forwardedFor = behindProxy && req.headers['x-forwarded-for'];
return forwardedFor || req?.socket?.remoteAddress || 'unknown';
}
//# sourceMappingURL=util.js.map