in typescript/lambda-manage-s3-event-notification/lambda/manage-s3-event-notifications.js [29:48]
function mergeConfigurations(request, inputConfig, currentConfig) {
const mergedConfig = {}
for (const [key, value] of Object.entries(currentConfig)) {
// Default to use existing configuration
mergedConfig[key] = value;
const input = inputConfig[key];
if (input && input.length) {
// If input configuration exists, merge it with existing configuration
const inputIds = new Set(input.map(obj => obj.Id));
if (request == 'Delete') {
mergedConfig[key] = value.filter(obj => !inputIds.has(obj.Id));
} else {
const filterConfig = value.filter(obj => !inputIds.has(obj.Id));
mergedConfig[key] = filterConfig.concat(input);
}
}
}
return mergedConfig;
}