{"version":3,"file":"clampNumber.cjs","names":[],"sources":["../../src/utils/clampNumber.ts"],"sourcesContent":["import type { DiagLogger } from '@opentelemetry/api';\n\n/**\n * Validates `value` against `[min, max]`, returning `defaultValue` (and\n * warning via `diag`) when the value is non-finite or out of range.\n * Returns `defaultValue` silently when `value` is undefined.\n *\n * Despite the name, out-of-range inputs are replaced with `defaultValue`\n * rather than pinned to `min`/`max`. Use this to validate user-supplied\n * config where falling back to a known-good default is safer than\n * silently mutating the value.\n */\nexport const clampNumber = ({\n  diag,\n  value,\n  defaultValue,\n  min,\n  max,\n}: {\n  diag?: DiagLogger;\n  value: number | undefined;\n  defaultValue: number;\n  min: number;\n  max: number;\n}): number => {\n  if (value === undefined) {\n    return defaultValue;\n  }\n  if (!Number.isFinite(value)) {\n    diag?.warn(\n      `value is not a finite number; falling back to default (${defaultValue.toString()}).`,\n    );\n    return defaultValue;\n  }\n  if (value < min || value > max) {\n    diag?.warn(\n      `value (${value.toString()}) is outside the allowed range ` +\n        `[${min.toString()}, ${max.toString()}]; ` +\n        `falling back to default (${defaultValue.toString()}).`,\n    );\n    return defaultValue;\n  }\n  return value;\n};\n"],"mappings":";;;;;;;;;;;;AAYA,MAAa,eAAe,EAC1B,MACA,OACA,cACA,KACA,UAOY;CACZ,IAAI,UAAU,KAAA,GACZ,OAAO;CAET,IAAI,CAAC,OAAO,SAAS,KAAK,GAAG;EAC3B,MAAM,KACJ,0DAA0D,aAAa,SAAS,EAAE,GACpF;EACA,OAAO;CACT;CACA,IAAI,QAAQ,OAAO,QAAQ,KAAK;EAC9B,MAAM,KACJ,UAAU,MAAM,SAAS,EAAE,kCACrB,IAAI,SAAS,EAAE,IAAI,IAAI,SAAS,EAAE,8BACV,aAAa,SAAS,EAAE,GACxD;EACA,OAAO;CACT;CACA,OAAO;AACT"}