MCPcopy Index your code
hub / github.com/getsentry/sentry-javascript / objectToBaggageHeader

Function objectToBaggageHeader

packages/core/src/utils/baggage.ts:149–168  ·  view source on GitHub ↗
(object: Record<string, string>)

Source from the content-addressed store, hash-verified

147 * is not spec compliant.
148 */
149export function objectToBaggageHeader(object: Record<string, string>): string | undefined {
150 if (Object.keys(object).length === 0) {
151 // An empty baggage header is not spec compliant: We return undefined.
152 return undefined;
153 }
154
155 return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {
156 const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;
157 const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;
158 if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {
159 DEBUG_BUILD &&
160 debug.warn(
161 `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`,
162 );
163 return baggageHeader;
164 } else {
165 return newBaggageHeader;
166 }
167 }, '');
168}
169
170/**
171 * Merge two baggage headers into one.

Callers 3

baggage.test.tsFile · 0.90
mergeBaggageHeadersFunction · 0.85

Calls 3

keysMethod · 0.65
entriesMethod · 0.65
warnMethod · 0.65

Tested by

no test coverage detected