@datadome/node-core
Version:
Core package for server-side modules using Node.js
76 lines (62 loc) • 1.63 kB
JavaScript
/**
* Length limits for values to validate with the DataDome API.
* @module @datadome/node-core/limits
*/
/// <reference path="./_typedefs.js" />
/**
*
* @param {string} name - The header name
* @returns {number} The truncation to respect for the given header name
*/
module.exports = function (name) {
switch (name) {
case 'XForwardedForIP':
return -512;
case 'SecCHDeviceMemory':
case 'SecCHUAMobile':
case 'SecFetchUser':
return 8;
case 'SecCHUAArch':
return 16;
case 'SecCHUAPlatform':
case 'SecFetchDest':
case 'SecFetchMode':
return 32;
case 'ContentType':
case 'SecFetchSite':
return 64;
case 'AcceptCharset':
case 'AcceptEncoding':
case 'CacheControl':
case 'ClientID':
case 'Connection':
case 'From':
case 'GraphQLOperationName':
case 'Pragma':
case 'SecCHUA':
case 'SecCHUAModel':
case 'TrueClientIP':
case 'UserID':
case 'X-Real-IP':
case 'X-Requested-With':
return 128;
case 'AcceptLanguage':
case 'Via':
case 'SecCHUAFullVersionList':
return 256;
case 'Accept':
case 'HeadersList':
case 'Host':
case 'Origin':
case 'ServerHostname':
case 'ServerName':
return 512;
case 'UserAgent':
return 768;
case 'Referer':
return 1024;
case 'Request':
return 2048;
}
return 0;
};