Spell a refused NaN as NaN, where JSON spells it null

This commit is contained in:
2026-09-21 10:29:43 +02:00
parent 93d794e61b
commit faa5482c7a
2 changed files with 8 additions and 3 deletions
+6 -1
View File
@@ -38,6 +38,11 @@ export function paramNumber(value: ParamValue | undefined, fallback: number): nu
return typeof value === 'number' ? value : fallback;
}
/** Spells a refused value for the caller who wrote it; JSON spells NaN and the infinities `null`. */
export function valueText(value: unknown): string {
return typeof value === 'number' ? String(value) : JSON.stringify(value);
}
function outOfRange(buffer: Buffer, offset: number, needed: number): Error | undefined {
if (offset < 0 || needed < 0 || offset + needed > buffer.length) {
return new Error(
@@ -50,7 +55,7 @@ function outOfRange(buffer: Buffer, offset: number, needed: number): Error | und
function wantInt(value: ParamValue, max: number): Result<{ int: number }> {
if (typeof value !== 'number' || !Number.isInteger(value)) {
return { err: new Error(`Expected an integer, got ${JSON.stringify(value)}`) };
return { err: new Error(`Expected an integer, got ${valueText(value)}`) };
}
if (value < 0 || value > max) {