featurehub-javascript-client-sdk
Version:
FeatureHub client/browser SDK
46 lines • 1.38 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.w3cBaggageHeader = void 0;
function createBaseBaggageHeader(header) {
let newHeader = '';
if (header) {
newHeader = header.split(',').filter(p => !p.startsWith('fhub')).join(',');
}
return newHeader;
}
function createBaggageHeader(features, newHeader) {
if (features.length > 0) {
if (newHeader.length > 0) {
return newHeader + ',fhub=' + features;
}
else {
return 'fhub=' + features;
}
}
else if (newHeader.length > 0) {
return newHeader;
}
else {
return undefined;
}
}
function w3cBaggageHeader({ repo, values, header }) {
const newHeader = createBaseBaggageHeader(header);
let features;
if (values) {
features = encodeURIComponent(Array.from(values)
.map(e => e[0] + '=' + (e[1] ? encodeURIComponent(e[1]) : ''))
.join(','));
}
else if (repo) {
features = encodeURIComponent(Array.from(repo.simpleFeatures().entries())
.map(e => e[0] + '=' + (e[1] ? encodeURIComponent(e[1]) : ''))
.join(','));
}
else {
return undefined;
}
return createBaggageHeader(features, newHeader);
}
exports.w3cBaggageHeader = w3cBaggageHeader;
//# sourceMappingURL=baggage_header.js.map
;