UNPKG

@splitsoftware/splitio-commons

Version:
42 lines (41 loc) 1.48 kB
"use strict"; 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;