2026-01-09 21:28:14 +01:00
|
|
|
export function parseTimeoutMs(raw: unknown): number | undefined {
|
2026-01-31 16:19:20 +09:00
|
|
|
if (raw === undefined || raw === null) {
|
|
|
|
|
return undefined;
|
|
|
|
|
}
|
2026-01-09 21:28:14 +01:00
|
|
|
let value = Number.NaN;
|
|
|
|
|
if (typeof raw === "number") {
|
|
|
|
|
value = raw;
|
|
|
|
|
} else if (typeof raw === "bigint") {
|
|
|
|
|
value = Number(raw);
|
|
|
|
|
} else if (typeof raw === "string") {
|
|
|
|
|
const trimmed = raw.trim();
|
2026-01-31 16:19:20 +09:00
|
|
|
if (!trimmed) {
|
|
|
|
|
return undefined;
|
|
|
|
|
}
|
2026-01-09 21:28:14 +01:00
|
|
|
value = Number.parseInt(trimmed, 10);
|
|
|
|
|
}
|
|
|
|
|
return Number.isFinite(value) ? value : undefined;
|
|
|
|
|
}
|