Severian's picture
Upload 7464 files
c211499
raw
history blame contribute delete
429 Bytes
import ascending from "./ascending.js";
import group, {rollup} from "./group.js";
import sort from "./sort.js";
export default function groupSort(values, reduce, key) {
return (reduce.length !== 2
? sort(rollup(values, reduce, key), (([ak, av], [bk, bv]) => ascending(av, bv) || ascending(ak, bk)))
: sort(group(values, key), (([ak, av], [bk, bv]) => reduce(av, bv) || ascending(ak, bk))))
.map(([key]) => key);
}