v3/packages/misc-utils/sortBy.ts
Katalina 45a1f45055
Fix role ordering (#789)
* fix role order in picker

* one of these sorts will flip it omg

* fix role list

* revert forced role sort in api
2023-05-28 11:15:44 -04:00

24 lines
465 B
TypeScript

export const sortBy = <T, Key extends keyof T>(
array: T[],
key: Key,
predicate?: (a: T[typeof key], b: T[typeof key]) => number,
reverse?: boolean
) => {
let postmultiplier = reverse ? -1 : 1;
return array.sort((a, b) => {
if (predicate) {
return predicate(a[key], b[key]);
}
if (a[key] === b[key]) {
return 0;
}
if (a[key] > b[key]) {
return 1 * postmultiplier;
}
return -1 * postmultiplier;
});
};