( baggageHeader: string | string[] | number | null | undefined | boolean, )
| 84 | * Take a baggage header and parse it into an object. |
| 85 | */ |
| 86 | export function parseBaggageHeader( |
| 87 | baggageHeader: string | string[] | number | null | undefined | boolean, |
| 88 | ): Record<string, string> | undefined { |
| 89 | if (!baggageHeader || (!isString(baggageHeader) && !Array.isArray(baggageHeader))) { |
| 90 | return undefined; |
| 91 | } |
| 92 | |
| 93 | if (Array.isArray(baggageHeader)) { |
| 94 | // Combine all baggage headers into one object containing the baggage values so we can later read the Sentry-DSC-values from it |
| 95 | return baggageHeader.reduce<Record<string, string>>((acc, curr) => { |
| 96 | const currBaggageObject = baggageHeaderToObject(curr); |
| 97 | Object.entries(currBaggageObject).forEach(([key, value]) => { |
| 98 | acc[key] = value; |
| 99 | }); |
| 100 | return acc; |
| 101 | }, {}); |
| 102 | } |
| 103 | |
| 104 | return baggageHeaderToObject(baggageHeader); |
| 105 | } |
| 106 | |
| 107 | /** |
| 108 | * Will parse a baggage header, which is a simple key-value map, into a flat object. |
no test coverage detected