import { acquireWriterLease, releaseWriterLease, type WriterLease } from "./lease.js"; export async function withWriterLease( path: string, staleMs: number, now: Date, operation: (lease: WriterLease) => Promise, ): Promise { const lease = await acquireWriterLease(path, staleMs, now); try { return await operation(lease); } finally { await releaseWriterLease(lease); } }