Skip to content

Commit 644a00b

Browse files
committed
address PR review
1 parent 8310ca7 commit 644a00b

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

packages/utils/src/baggage.ts

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import { IS_DEBUG_BUILD } from './flags';
2+
import { logger } from './logger';
3+
14
export type AllowedBaggageKeys = 'environment' | 'release'; // TODO: Add remaining allowed baggage keys | 'transaction' | 'userid' | 'usersegment';
25
export type BaggageObj = Partial<Record<AllowedBaggageKeys, string> & Record<string, string>>;
36

@@ -34,7 +37,7 @@ export function createBaggage(initItems: BaggageObj, baggageString: string = '')
3437
return [{ ...initItems }, baggageString];
3538
}
3639

37-
/** Add a value to baggage */
40+
/** Get a value from baggage */
3841
export function getBaggageValue(baggage: Baggage, key: keyof BaggageObj): BaggageObj[keyof BaggageObj] {
3942
return baggage[0][key];
4043
}
@@ -46,17 +49,23 @@ export function setBaggageValue(baggage: Baggage, key: keyof BaggageObj, value:
4649

4750
/** Serialize a baggage object */
4851
export function serializeBaggage(baggage: Baggage): string {
49-
return Object.keys(baggage[0]).reduce((prev, key) => {
50-
const val = baggage[0][key as keyof BaggageObj] as string;
52+
return Object.keys(baggage[0]).reduce((prev, key: keyof BaggageObj) => {
53+
const val = baggage[0][key] as string;
5154
const baggageEntry = `${SENTRY_BAGGAGE_KEY_PREFIX}${encodeURIComponent(key)}=${encodeURIComponent(val)}`;
5255
const newVal = prev === '' ? baggageEntry : `${prev},${baggageEntry}`;
53-
return newVal.length > MAX_BAGGAGE_STRING_LENGTH ? prev : newVal;
56+
if (newVal.length > MAX_BAGGAGE_STRING_LENGTH) {
57+
IS_DEBUG_BUILD &&
58+
logger.warn(`Not adding key: ${key} with val: ${val} to baggage due to exceeding baggage size limits.`);
59+
return prev;
60+
} else {
61+
return newVal;
62+
}
5463
}, baggage[1]);
5564
}
5665

5766
/** Parse a baggage header to a string */
58-
export function parseBaggageString(baggageString: string): Baggage {
59-
return baggageString.split(',').reduce(
67+
export function parseBaggageString(inputBaggageString: string): Baggage {
68+
return inputBaggageString.split(',').reduce(
6069
([baggageObj, baggageString], curr) => {
6170
const [key, val] = curr.split('=');
6271
if (SENTRY_BAGGAGE_KEY_PREFIX_REGEX.test(key)) {

0 commit comments

Comments
 (0)