( inputVal: unknown, min: number, max: number, fallback: F )
| 6 | * @param fallback |
| 7 | */ |
| 8 | export function DefaultNumberOption<F extends number | undefined>( |
| 9 | inputVal: unknown, |
| 10 | min: number, |
| 11 | max: number, |
| 12 | fallback: F |
| 13 | ): F extends number ? number : number | undefined { |
| 14 | if (inputVal === undefined) { |
| 15 | // @ts-expect-error |
| 16 | return fallback |
| 17 | } |
| 18 | const val = Number(inputVal) |
| 19 | if (isNaN(val) || val < min || val > max) { |
| 20 | throw new RangeError(`${val} is outside of range [${min}, ${max}]`) |
| 21 | } |
| 22 | return Math.floor(val) |
| 23 | } |
no test coverage detected