From 4bd884aa186302f6c17cd2813678c9df1f6843bd Mon Sep 17 00:00:00 2001 From: Devin Foley Date: Sun, 3 May 2026 19:54:34 -0700 Subject: [PATCH] Tighten CI helper argument validation --- scripts/run-typecheck-build-gaps.mjs | 4 ++++ scripts/run-vitest-stable.mjs | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/scripts/run-typecheck-build-gaps.mjs b/scripts/run-typecheck-build-gaps.mjs index 74aafa6a5ec..f6926e3daab 100644 --- a/scripts/run-typecheck-build-gaps.mjs +++ b/scripts/run-typecheck-build-gaps.mjs @@ -36,6 +36,10 @@ function listWorkspacePackages() { encoding: "utf8", }); + if (result.error) { + fail(`Unable to spawn pnpm to list workspace packages: ${result.error.message}`); + } + if (result.status !== 0) { fail("Unable to list pnpm workspace packages."); } diff --git a/scripts/run-vitest-stable.mjs b/scripts/run-vitest-stable.mjs index 398e7e9858c..4ded9794581 100644 --- a/scripts/run-vitest-stable.mjs +++ b/scripts/run-vitest-stable.mjs @@ -95,8 +95,8 @@ function readOptionValue(argv, index, argName) { } function parseNonNegativeInteger(value, argName) { - const parsed = Number.parseInt(value, 10); - if (!Number.isInteger(parsed) || parsed < 0) { + const parsed = Number(value); + if (value.trim() === "" || !Number.isInteger(parsed) || parsed < 0) { fail(`${argName} must be a non-negative integer. Received "${value}".`); } @@ -104,8 +104,8 @@ function parseNonNegativeInteger(value, argName) { } function parsePositiveInteger(value, argName) { - const parsed = Number.parseInt(value, 10); - if (!Number.isInteger(parsed) || parsed < 1) { + const parsed = Number(value); + if (value.trim() === "" || !Number.isInteger(parsed) || parsed < 1) { fail(`${argName} must be a positive integer. Received "${value}".`); }