UNPKG

@beenotung/tslib

Version:
43 lines 1.34 kB
"use strict"; 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