unload

Execute code when the js-process exits. On all javascript-environments

Usage no npm install needed!

<script type="module">
  import unload from 'https://cdn.skypack.dev/unload';
</script>

README

javascript: unload

Run a piece of code whenever the javascript-process stops/exits/quits. On browsers, nodejs, electron, react-native. It also ensures that the exit-function is called only once.

You should use this module when your write a npm-library where you dont know in which environments the users will run it.

What does unload handle?

When nodejs:

process.on('beforeExit');
process.on('exit');
process.on('SIGINT'); // catches ctrl+c event
process.on('uncaughtException'); // catches uncaught exceptions

When browser:

window.addEventListener('beforeunload'); // closing of normal browser-window
window.addEventListener('unload'); // closed inside of iframe

Usage

Installation:

npm install unload --save

Add a function which runs when the process exits:

var unload = require('unload');
unload.add(function(){
    console.log('Ouch, I\'m dying.');
});

Add and remove the function (It will no longer run when the process exits):

var unload = require('unload');
var ret = unload.add(function(){
    console.log('Ouch, I\'m dying.');
});

ret.remove(); // removes the event-handler

Run all previously added functions:

var unload = require('unload');
unload.add(function(){
    console.log('Ouch, I\'m dying.');
});

unload.runAll();

Remove all added functions (They will no longer run when the process exits):

var unload = require('unload');
unload.add(function(){
    console.log('Ouch, I\'m dying.');
});

unload.removeAll();