UNPKG

pragmatic-fp-ts

Version:

Opinionated functional programming library with easy use in mind

26 lines (25 loc) 749 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ascend = void 0; const main_1 = require("./main"); function ascend(toComparable) { return (a, b) => { const valA = (0, main_1.getValueOr)(null, a); const valB = (0, main_1.getValueOr)(null, b); const cvalA = valA && toComparable(valA); const cvalB = valB && toComparable(valB); if (cvalA === cvalB) { return 0; } else if ((0, main_1.isSome)(cvalA) && (0, main_1.isSome)(cvalB)) { return cvalA < cvalB ? 1 : -1; } else if ((0, main_1.isNil)(cvalA)) { return -1; } else { return 1; } }; } exports.ascend = ascend;