UNPKG

@embrace-io/web-sdk

Version:
28 lines (27 loc) 1.17 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); //#region src/utils/clampNumber.ts /** * Validates `value` against `[min, max]`, returning `defaultValue` (and * warning via `diag`) when the value is non-finite or out of range. * Returns `defaultValue` silently when `value` is undefined. * * Despite the name, out-of-range inputs are replaced with `defaultValue` * rather than pinned to `min`/`max`. Use this to validate user-supplied * config where falling back to a known-good default is safer than * silently mutating the value. */ const clampNumber = ({ diag, value, defaultValue, min, max }) => { if (value === void 0) return defaultValue; if (!Number.isFinite(value)) { diag?.warn(`value is not a finite number; falling back to default (${defaultValue.toString()}).`); return defaultValue; } if (value < min || value > max) { diag?.warn(`value (${value.toString()}) is outside the allowed range [${min.toString()}, ${max.toString()}]; falling back to default (${defaultValue.toString()}).`); return defaultValue; } return value; }; //#endregion exports.clampNumber = clampNumber; //# sourceMappingURL=clampNumber.cjs.map