Functions

f
armExitGuard(
describe: () => string,
target?: ExitTarget,
write?: (message: string) => void
): ExitGuard

Makes exiting 0 something a command has to say, rather than what happens when nothing is left to do.

Interfaces

I
ExitGuard

What armExitGuard hands back: the one way to say the work produced a result.

I
ExitTarget

The parts of process the guard touches, so a test can drive its exit without exiting.