Files
new-api-analytics/lib/detail-sort.ts

21 lines
519 B
TypeScript

export interface DetailBreakdownItem {
name: string;
calls: number;
total_tokens: number;
quota: number;
}
export type DetailBreakdownSortKey = "calls" | "total_tokens" | "quota";
export function sortDetailBreakdown(
items: DetailBreakdownItem[],
sortKey: DetailBreakdownSortKey,
sortAsc: boolean
): DetailBreakdownItem[] {
return [...items].sort((a, b) => {
const diff = a[sortKey] - b[sortKey];
if (diff !== 0) return sortAsc ? diff : -diff;
return a.name.localeCompare(b.name);
});
}