21 lines
519 B
TypeScript
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);
|
|
});
|
|
}
|