@splitsoftware/splitio-commons
Version:
Split JavaScript SDK common components
36 lines (35 loc) • 1.22 kB
JavaScript
import { objectAssign } from '../utils/lang/objectAssign';
var FORBIDDEN_HEADERS = new Set([
'splitsdkclientkey',
'splitsdkversion',
'splitsdkmachineip',
'splitsdkmachinename',
'splitsdkimpressionsmode',
'host',
'referrer',
'content-type',
'content-length',
'content-encoding',
'accept',
'keep-alive',
'x-fastly-debug'
]);
export function decorateHeaders(settings, headers) {
var _a;
if ((_a = settings.sync.requestOptions) === null || _a === void 0 ? void 0 : _a.getHeaderOverrides) {
try {
var headerOverrides_1 = settings.sync.requestOptions.getHeaderOverrides({ headers: objectAssign({}, headers) });
Object.keys(headerOverrides_1)
.filter(function (key) { return !FORBIDDEN_HEADERS.has(key.toLowerCase()); })
.forEach(function (key) { return headers[key] = headerOverrides_1[key]; });
}
catch (e) {
settings.log.error('Problem adding custom headers to request decorator: ' + e);
}
}
return headers;
}
export function removeNonISO88591(input) {
// eslint-disable-next-line no-control-regex
return input.replace(/[^\x00-\xFF]/g, '');
}