pragmatic-fp-ts
Version:
Opinionated functional programming library with easy use in mind
27 lines (26 loc) • 900 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.clamp = void 0;
const main_1 = require("./main");
function clamp(min, max, value) {
if (arguments.length === 1) {
return function (_max, _value) {
if (arguments.length === 1) {
return clamp(min, _max);
}
else {
return clamp(min, _max, _value);
}
};
}
else if (arguments.length === 2) {
return (_value) => clamp(min, max, _value);
}
const [val, minVal, maxVal] = [value, min, max].map(main_1.getValue);
if (val === undefined || minVal === undefined || maxVal === undefined) {
throw new Error("clamp() retrieved undefined input" +
JSON.stringify({ min: min, max, value }));
}
return val < minVal ? minVal : val > maxVal ? maxVal : val;
}
exports.clamp = clamp;