UNPKG

@baruchiro/actual-mcp

Version:

Actual Budget MCP server exposing API functionality

30 lines 1.17 kB
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; } byId(list) { return list.reduce((acc, item) => { acc[item.id] = item; return acc; }, {}); } } //# sourceMappingURL=group-by.js.map