refactor(normalization): consolidate seconds conversion (#130069)

Amp-Thread-ID: https://ampcode.com/threads/T-01a03a19-be71-77a7-a886-4c688012c709

Co-authored-by: Amp <amp@ampcode.com>
This commit is contained in:
Peter Steinberger
2026-08-26 05:05:42 -07:00
committed by GitHub
parent 44d60a29e6
commit 5c8dbdcabf
@@ -292,24 +292,19 @@ export function parseStrictNonNegativeInteger(value: unknown): number | undefine
return parsed !== undefined && parsed >= 0 ? parsed : undefined;
}
function safeMillisecondsFromSeconds(seconds: number | undefined): number | undefined {
const milliseconds = seconds === undefined ? undefined : seconds * 1000;
return Number.isSafeInteger(milliseconds) ? milliseconds : undefined;
}
/** Converts strict positive seconds to safe millisecond counts. */
export function positiveSecondsToSafeMilliseconds(value: unknown): number | undefined {
const seconds = parseStrictPositiveInteger(value);
if (seconds === undefined) {
return undefined;
}
const milliseconds = seconds * 1000;
return Number.isSafeInteger(milliseconds) ? milliseconds : undefined;
return safeMillisecondsFromSeconds(parseStrictPositiveInteger(value));
}
/** Converts strict non-negative seconds to safe millisecond counts. */
export function nonNegativeSecondsToSafeMilliseconds(value: unknown): number | undefined {
const seconds = parseStrictNonNegativeInteger(value);
if (seconds === undefined) {
return undefined;
}
const milliseconds = seconds * 1000;
return Number.isSafeInteger(milliseconds) ? milliseconds : undefined;
return safeMillisecondsFromSeconds(parseStrictNonNegativeInteger(value));
}
/** Resolves an absolute expiration timestamp from a positive duration in milliseconds. */