UNPKG

compary

Version:

A library for composing complex compare-functions

30 lines 1.16 kB
Object.defineProperty(exports, "__esModule", { value: true }); var naturalOrder = function (a, b) { return a < b ? -1 : a > b ? 1 : 0; }; function compare(comparison) { return Object.assign(comparison, { reversed: function () { return compare(function (a, b) { return comparison(a, b) * -1; }); }, then: function (nextComparison) { return compare(function (a, b) { var result = comparison(a, b); return result !== 0 ? result : nextComparison(a, b); }); }, thenDescending: function (nextComparison) { return this.then(compare(nextComparison) .reversed()); }, thenBy: function (selector) { return this.then(function (a, b) { return naturalOrder(selector(a), selector(b)); }); }, thenByDescending: function (selector) { return this.then(compare(function (a, b) { return naturalOrder(selector(a), selector(b)); }) .reversed()); } }); } exports.compare = compare; //# sourceMappingURL=Comparator.js.map