fast-sort-lens
Version:
API wrapper around fast-sort
33 lines (31 loc) • 843 B
JavaScript
import { sort, sort as sort$1 } from "fast-sort";
//#region src/index.ts
/**
* just like lodash.orderBy API spec
*/
function fastOrderBy(list, props, orders) {
if (props.length !== orders.length) throw new Error("props & orders length not match");
const _by = props.map((prop, index) => {
const order = orders[index];
if (order === "asc") return { asc: prop };
else if (order === "desc") return { desc: prop };
return {
asc: prop,
comparer: order
};
});
return sort$1(list).by(_by);
}
function fastSortWithOrders(list, orders) {
const _by = orders.map(({ order, prop }) => {
if (order === "asc") return { asc: prop };
else if (order === "desc") return { desc: prop };
return {
asc: prop,
comparer: order
};
});
return sort$1(list).by(_by);
}
//#endregion
export { fastOrderBy, fastSortWithOrders, sort };