@newdash/newdash
Version:
javascript/typescript utility library
45 lines (44 loc) • 1.22 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.clamp = void 0;
const toNumber_1 = __importDefault(require("./toNumber"));
const baseClamp_1 = require("./.internal/baseClamp");
/**
* Clamps `number` within the inclusive `lower` and `upper` bounds.
*
* @since 5.7.0
* @category Number
* @param num The number to clamp.
* @param lower The lower bound.
* @param upper The upper bound.
* @returns Returns the clamped number.
* @example
*
* ```js
* clamp(-10, -5, 5)
* // => -5
*
* clamp(10, -5, 5)
* // => 5
* ```
*/
function clamp(num, lower, upper) {
if (upper === undefined) {
upper = lower;
lower = undefined;
}
if (upper !== undefined) {
upper = (0, toNumber_1.default)(upper);
upper = upper === upper ? upper : 0;
}
if (lower !== undefined) {
lower = (0, toNumber_1.default)(lower);
lower = lower === lower ? lower : 0;
}
return (0, baseClamp_1.baseClamp)((0, toNumber_1.default)(num), lower, upper);
}
exports.clamp = clamp;
exports.default = clamp;