@vltpkg/rollback-remove
A utility for removing stuff, in such a way that the removal can be rolled back on failure, or confirmed and executed in a detached background process.
Usage
The best way to use this is to not catch errors, but detect
failure in a finally
block and either confirm or roll back
appropriately.
import { RollbackRemove } from '@vltpkg/rollback-remove'
const remover = new RollbackRemove()
let success = falsetry { await remover.rm('some/path') doSomethingThatMayThrow() remover.confirm() success = true} finally { if (!success) await remover.rollback()}