@beenotung/tslib
Version:
utils library in Typescript
43 lines • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.compare_by_keys = exports.compare = exports.CompareResult = exports.isBetween = void 0;
/**
* inclusive
* */
function isBetween(lowerBound, value, upperBound) {
return lowerBound <= value && value <= upperBound;
}
exports.isBetween = isBetween;
var CompareResult;
(function (CompareResult) {
CompareResult[CompareResult["Smaller"] = -1] = "Smaller";
CompareResult[CompareResult["Equal"] = 0] = "Equal";
CompareResult[CompareResult["Larger"] = 1] = "Larger";
})(CompareResult = exports.CompareResult || (exports.CompareResult = {}));
function compare(a, b) {
return a < b
? CompareResult.Smaller
: a > b
? CompareResult.Larger
: CompareResult.Equal;
}
exports.compare = compare;
function compare_by_keys(_keys) {
const keys = _keys.map(key => {
if (typeof key === 'object') {
return key;
}
return { key, order: 'asc' };
});
return (a, b) => {
for (const { key, order } of keys) {
const cmp = compare(a[key], b[key]);
if (cmp !== 0) {
return order === 'desc' ? -cmp : cmp;
}
}
return 0;
};
}
exports.compare_by_keys = compare_by_keys;
//# sourceMappingURL=compare.js.map