openclaw/scripts/lib/strict-integer-option.ts
Peter Steinberger 18c9f27e2d
fix(scripts): diagnose gateway concurrency probes (#118308)
Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local>
2026-08-02 17:34:46 -07:00

24 lines
694 B
TypeScript

// Strict integer parsing is dependency-free so native Node TypeScript scripts can reuse it.
export function parseStrictIntegerOption(params: {
fallback: number;
label: string;
min: number;
raw: string | undefined;
}): number {
const raw = params.raw?.trim();
if (!raw) {
return params.fallback;
}
if (!/^\d+$/u.test(raw)) {
throw new Error(
`${params.label} must be an integer >= ${params.min}; got ${JSON.stringify(raw)}`,
);
}
const value = Number(raw);
if (!Number.isSafeInteger(value) || value < params.min) {
throw new Error(
`${params.label} must be an integer >= ${params.min}; got ${JSON.stringify(raw)}`,
);
}
return value;
}