UNPKG

@newdash/newdash

Version:

javascript/typescript utility library

45 lines (44 loc) 1.22 kB
"use strict"; 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;