File size: 844 Bytes
fc93158 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | import fs from "node:fs";
import { parseStrictNonNegativeInteger } from "../infra/parse-finite-number.js";
export function resolveCacheTtlMs(params: {
envValue: string | undefined;
defaultTtlMs: number;
}): number {
const { envValue, defaultTtlMs } = params;
if (envValue) {
const parsed = parseStrictNonNegativeInteger(envValue);
if (parsed !== undefined) {
return parsed;
}
}
return defaultTtlMs;
}
export function isCacheEnabled(ttlMs: number): boolean {
return ttlMs > 0;
}
export type FileStatSnapshot = {
mtimeMs: number;
sizeBytes: number;
};
export function getFileStatSnapshot(filePath: string): FileStatSnapshot | undefined {
try {
const stats = fs.statSync(filePath);
return {
mtimeMs: stats.mtimeMs,
sizeBytes: stats.size,
};
} catch {
return undefined;
}
}
|