GPT-Researcher / frontend /nextjs /utils /consolidateBlocks.ts
Shreyas094's picture
Upload 528 files
372531f verified
raw
history blame
1.09 kB
export const consolidateSourceAndImageBlocks = (groupedData: any[]) => {
// Consolidate sourceBlocks
const consolidatedSourceBlock = {
type: 'sourceBlock',
items: groupedData
.filter(item => item.type === 'sourceBlock')
.flatMap(block => block.items || [])
.filter((item, index, self) =>
index === self.findIndex(t => t.url === item.url)
)
};
// Consolidate imageBlocks
const consolidatedImageBlock = {
type: 'imagesBlock',
metadata: groupedData
.filter(item => item.type === 'imagesBlock')
.flatMap(block => block.metadata || [])
};
// Remove all existing sourceBlocks and imageBlocks
groupedData = groupedData.filter(item =>
item.type !== 'sourceBlock' && item.type !== 'imagesBlock'
);
// Add consolidated blocks if they have items
if (consolidatedSourceBlock.items.length > 0) {
groupedData.push(consolidatedSourceBlock);
}
if (consolidatedImageBlock.metadata.length > 0) {
groupedData.push(consolidatedImageBlock);
}
return groupedData;
};