actual-mcp
Version:
Actual Budget MCP server exposing API functionality
24 lines • 1.03 kB
JavaScript
export class GroupAggregator {
aggregateAndSort(spendingByCategory) {
const spendingByGroup = {};
Object.values(spendingByCategory).forEach((category) => {
if (!spendingByGroup[category.group]) {
spendingByGroup[category.group] = {
name: category.group,
total: 0,
categories: [],
};
}
spendingByGroup[category.group].total += category.total;
spendingByGroup[category.group].categories.push(category);
});
// Sort groups by absolute total (descending)
const sortedGroups = Object.values(spendingByGroup).sort((a, b) => Math.abs(b.total) - Math.abs(a.total));
// Sort categories within each group by absolute total (descending)
sortedGroups.forEach((group) => {
group.categories.sort((a, b) => Math.abs(b.total) - Math.abs(a.total));
});
return sortedGroups;
}
}
//# sourceMappingURL=group-by.js.map