Skip to main content
Module

x/ramda/clamp.js

:ram: Practical functional Javascript
Go to Latest
File
import _curry3 from './internal/_curry3';
/** * Restricts a number to be within a range. * * Also works for other ordered types such as Strings and Dates. * * @func * @memberOf R * @since v0.20.0 * @category Relation * @sig Ord a => a -> a -> a -> a * @param {Number} minimum The lower limit of the clamp (inclusive) * @param {Number} maximum The upper limit of the clamp (inclusive) * @param {Number} value Value to be clamped * @return {Number} Returns `minimum` when `val < minimum`, `maximum` when `val > maximum`, returns `val` otherwise * @example * * R.clamp(1, 10, -5) // => 1 * R.clamp(1, 10, 15) // => 10 * R.clamp(1, 10, 4) // => 4 */var clamp = _curry3(function clamp(min, max, value) { if (min > max) { throw new Error('min must not be greater than max in clamp(min, max, value)'); } return value < min ? min : value > max ? max : value;});export default clamp;