/**
* Transforms message queue data with manual overrides.
*
* @param {Array<Object>} queueData - The raw message queue data. Each object is a message.
* @param {Object} overrides - An object containing manual overrides for specific messages. Key is message ID, value is the modified message object.
* @returns {Array<Object>} - The transformed message queue data.
*/
function transformQueueData(queueData, overrides) {
if (!queueData || !Array.isArray(queueData)) {
return []; // Return empty array if input is invalid
}
const transformedData = queueData.map(message => {
let transformedMessage = { ...message }; // Create a copy to avoid modifying original
if (overrides && overrides[message.id]) {
// Apply overrides if available
transformedMessage = { ...overrides[message.id] }; // Use override object as base
for (const key in message) {
if (message.hasOwnProperty(key) && key !== 'id') {
transformedMessage[key] = message[key]; // Override with value from original message
}
}
}
return transformedMessage;
});
return transformedData;
}
Add your comment