1+ /**
2+ * Strict numeric parsers for browser route input.
3+ *
4+ * Converts query/body values into finite integer/timeout numbers while
5+ * preserving route-specific error messages for JSON responses.
6+ */
17import {
28 parseStrictFiniteNumber ,
39 parseStrictInteger ,
@@ -10,6 +16,7 @@ function hasRouteInputValue(value: unknown): boolean {
1016 return value != null ;
1117}
1218
19+ /** Read an optional finite number route field. */
1320export function readRouteFiniteNumber ( value : unknown , fieldName : string ) : number | undefined {
1421 const parsed = parseStrictFiniteNumber ( value ) ;
1522 if ( parsed === undefined && hasRouteInputValue ( value ) ) {
@@ -18,6 +25,7 @@ export function readRouteFiniteNumber(value: unknown, fieldName: string): number
1825 return parsed ;
1926}
2027
28+ /** Read an optional finite number, treating blank strings as absent. */
2129export function readOptionalRouteFiniteNumber (
2230 value : unknown ,
2331 fieldName : string ,
@@ -28,6 +36,7 @@ export function readOptionalRouteFiniteNumber(
2836 return readRouteFiniteNumber ( value , fieldName ) ;
2937}
3038
39+ /** Read an optional integer route field. */
3140export function readRouteInteger (
3241 value : unknown ,
3342 fieldName : string ,
@@ -40,6 +49,7 @@ export function readRouteInteger(
4049 return parsed ;
4150}
4251
52+ /** Read an optional positive integer route field. */
4353export function readRoutePositiveInteger (
4454 value : unknown ,
4555 fieldName : string ,
@@ -52,6 +62,7 @@ export function readRoutePositiveInteger(
5262 return parsed ;
5363}
5464
65+ /** Read and normalize an optional positive timeout value. */
5566export function readRouteTimerTimeoutMs (
5667 value : unknown ,
5768 fieldName = "timeoutMs" ,
@@ -61,6 +72,7 @@ export function readRouteTimerTimeoutMs(
6172 return parsed === undefined ? undefined : normalizeBrowserTimerDelayMs ( parsed , opts ) ;
6273}
6374
75+ /** Read an optional non-negative integer route field. */
6476export function readRouteNonNegativeInteger (
6577 value : unknown ,
6678 fieldName : string ,
0 commit comments