28 lines
946 B
JavaScript
28 lines
946 B
JavaScript
import { unsortedComparator } from './unsorted-comparator.js'
|
|
/**
|
|
* Computes the array of comparators to use for sorting based on options.
|
|
*
|
|
* Returns an array containing the main comparator and a fallback comparator. If
|
|
* the main comparator is the unsorted comparator, returns an empty array since
|
|
* no sorting should be performed.
|
|
*
|
|
* @param comparatorByOptionsComputer - Function that creates a comparator from
|
|
* options.
|
|
* @param options - The sorting options including fallback sort configuration.
|
|
* @returns An array of comparators, or empty array if sorting is disabled.
|
|
*/
|
|
function computeComparators(comparatorByOptionsComputer, options) {
|
|
let mainComparator = comparatorByOptionsComputer(options)
|
|
if (mainComparator === unsortedComparator) {
|
|
return []
|
|
}
|
|
return [
|
|
mainComparator,
|
|
comparatorByOptionsComputer({
|
|
...options,
|
|
...options.fallbackSort,
|
|
}),
|
|
]
|
|
}
|
|
export { computeComparators }
|