import { type Comparator } from '@/types'; import { createStringComparator } from './createStringComparator'; import { numberComparator } from './numberComparator'; export const createKeyComparator = >( key: keyof T, locale: string, ): Comparator => { const stringComparator = createStringComparator(locale); return (a: T, b: T): number => { const aValue = a[key]; const bValue = b[key]; if (typeof aValue === 'string' && typeof bValue === 'string') { return stringComparator(aValue, bValue); } if (typeof aValue === 'number' && typeof bValue === 'number') { return numberComparator(aValue, bValue); } return 0; }; };