refactor: centralize strict numeric parsing

This commit is contained in:
Peter Steinberger
2026-03-08 02:52:44 +00:00
parent 3087893ef9
commit 2646739d23
11 changed files with 128 additions and 30 deletions

View File

@@ -1,19 +1,8 @@
import { parseStrictPositiveInteger } from "../../infra/parse-finite-number.js";
export function parsePort(raw: unknown): number | null {
if (raw === undefined || raw === null) {
return null;
}
const value =
typeof raw === "string"
? raw
: typeof raw === "number" || typeof raw === "bigint"
? raw.toString()
: null;
if (value === null) {
return null;
}
const parsed = Number.parseInt(value, 10);
if (!Number.isFinite(parsed) || parsed <= 0) {
return null;
}
return parsed;
return parseStrictPositiveInteger(raw) ?? null;
}