@splitsoftware/splitio-commons
Version:
Split JavaScript SDK common components
42 lines (41 loc) • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.removeNonISO88591 = exports.decorateHeaders = void 0;
var objectAssign_1 = require("../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',
'x-harness-fme-sdk-version'
]);
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: (0, objectAssign_1.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;
}
exports.decorateHeaders = decorateHeaders;
function removeNonISO88591(input) {
// eslint-disable-next-line no-control-regex
return input.replace(/[^\x00-\xFF]/g, '');
}
exports.removeNonISO88591 = removeNonISO88591;