A simple utility to subscribe and run tasks before a nodejs program exits (or throws an uncaught exception)
npm i 'clean-this-mess'
Adding tasks to the exit queue
cleanup function as a default ESM export, pass any function(s) (even asynchronous) that you want to run before the program exits.
import cleanup from 'clean-this-mess'; cleanup(() => 'Goodbye 👋');
Note: order of execution is not warrantied, if your functions are async they do not wait for each other, they are added to the micro task queue at once, eg.
Remove tasks from the exit queue
If you change your mind and want to remove a task, the
cleanup function returns a undo method that can be called to remove the task.
import cleanup from 'clean-this-mess'; const removeSayGoodbye = cleanup(() => 'Goodbye 👋'); removeSayGoodbye();