fix(cli): reject malformed timeout values

This commit is contained in:
Peter Steinberger
2026-05-27 13:04:39 -04:00
parent de5971eedc
commit 5f7e21e26a
12 changed files with 195 additions and 42 deletions

View File

@@ -20,12 +20,13 @@ describe("program helpers", () => {
{ value: null, expected: undefined },
{ value: "", expected: undefined },
{ value: 5, expected: 5 },
{ value: 5.9, expected: 5 },
{ value: 5.9, expected: undefined },
{ value: 0, expected: undefined },
{ value: -1, expected: undefined },
{ value: Number.NaN, expected: undefined },
{ value: "10", expected: 10 },
{ value: "10ms", expected: 10 },
{ value: "10ms", expected: undefined },
{ value: "1.5", expected: undefined },
{ value: "0", expected: undefined },
{ value: "nope", expected: undefined },
{ value: true, expected: undefined },

View File

@@ -9,21 +9,7 @@ export function parsePositiveIntOrUndefined(value: unknown): number | undefined
if (value === undefined || value === null || value === "") {
return undefined;
}
if (typeof value === "number") {
if (!Number.isFinite(value)) {
return undefined;
}
const parsed = Math.trunc(value);
return parsed > 0 ? parsed : undefined;
}
if (typeof value === "string") {
const parsed = Number.parseInt(value, 10);
if (Number.isNaN(parsed) || parsed <= 0) {
return undefined;
}
return parsed;
}
return undefined;
return parseStrictPositiveInteger(value);
}
export function parseStrictPositiveIntOrUndefined(value: unknown): number | undefined {