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

21 lines
514 B
TypeScript

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