123456789101112131415161718192021222324252627282930313233343536 |
- export type NetworkSpan = {
- data: Record<string, any>;
- endTimestamp: number;
- op: string;
- startTimestamp: number;
- description?: string;
- };
- export interface ISortConfig {
- asc: boolean;
- by: keyof NetworkSpan | string;
- getValue: (row: NetworkSpan) => any;
- }
- export function sortNetwork(
- network: NetworkSpan[],
- sortConfig: ISortConfig
- ): NetworkSpan[] {
- return [...network].sort((a, b) => {
- let valueA = sortConfig.getValue(a);
- let valueB = sortConfig.getValue(b);
- valueA = typeof valueA === 'string' ? valueA.toUpperCase() : valueA;
- valueB = typeof valueB === 'string' ? valueB.toUpperCase() : valueB;
- if (valueA === valueB) {
- return 0;
- }
- if (sortConfig.asc) {
- return valueA > valueB ? 1 : -1;
- }
- return valueB > valueA ? 1 : -1;
- });
- }
|