import { type ShowCoordinates } from '@scrabble-solver/types'; import { type Comparator, type ComparatorFactory, type Sort, SortDirection } from '@/types'; import { reverseComparator } from './reverseComparator'; interface Parameters { comparators: Record>; locale: string; showCoordinates: ShowCoordinates; sort: Sort; } export function createSortComparator({ comparators, locale, showCoordinates, sort, }: Parameters): Comparator { const comparator = comparators[sort.column](locale, showCoordinates); return sort.direction === SortDirection.Descending ? reverseComparator(comparator) : comparator; }