15 lines
476 B
TypeScript
15 lines
476 B
TypeScript
export function parseTimeoutMs(raw: unknown): number | undefined {
|
|
if (raw === undefined || raw === null) return undefined;
|
|
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();
|
|
if (!trimmed) return undefined;
|
|
value = Number.parseInt(trimmed, 10);
|
|
}
|
|
return Number.isFinite(value) ? value : undefined;
|
|
}
|