import { statSync } from 'node:fs'; export interface ExecutableSnapshot { dev: number; ino: number; mtimeMs: number; size: number; } export function snapshotExecutable(execPath: string): ExecutableSnapshot | null { try { const stat = statSync(execPath); return { dev: stat.dev, ino: stat.ino, mtimeMs: stat.mtimeMs, size: stat.size, }; } catch { return null; } } export function executableSnapshotChanged( initial: ExecutableSnapshot | null, current: ExecutableSnapshot | null, ): boolean { if (!initial || !current) { return false; } return ( initial.dev !== current.dev || initial.ino !== current.ino || initial.mtimeMs !== current.mtimeMs || initial.size !== current.size ); }