/**
* Aggregates values of response headers for sandbox usage, supporting older browsers.
*
* @param {object} headers - An object containing the response headers.
* @returns {object} - An object containing aggregated header values. Returns an empty object if headers is null or undefined.
*/
function aggregateHeaders(headers) {
if (!headers) {
return {};
}
const aggregated = {};
for (const key in headers) {
if (headers.hasOwnProperty(key)) {
const value = headers[key];
if (Array.isArray(value)) {
// Handle headers that are arrays (e.g., Cache-Control)
aggregated[key] = value.join(', ');
} else if (typeof value === 'string') {
// Handle string values
aggregated[key] = value;
} else if (typeof value === 'number' || typeof value === 'boolean') {
aggregated[key] = String(value); //convert to string for consistency
} else {
// Handle other types (e.g., null, undefined) - convert to string to prevent errors
aggregated[key] = String(value);
}
}
}
return aggregated;
}
Add your comment