npm

Join us for the upcoming webinar, "Enterprise JavaScript done right: the tools you love, the security you need."Sign up here »

@darkobits/adeiu

0.2.4 • Public • Published

Yet another POSIX signal handler.

Features

  • Ensures provided functions are called before any other event listeners and are run concurrently, minimizing shutdown time.
  • Works with any combination of synchronous and asynchronous functions.
  • Ensures a clean exit if all functions resolve/return.
  • Exits with an error if any functions reject/throw.
  • Ensures processes exit cleanly, even when they have asynchronous shut-down functions and the Node debugger is in use. (See this issue)

Install

npm i @darkobits/adeiu

Use

import adeiu from '@darkobits/adeiu';
 
// Register a callback.
const annuler = adeiu(async signal => {
  console.log(`Hey, we got ${signal}. Exiting...`);
 
  await someAsyncStuff();
 
  console.log('All done!');
});
 
// Unregister the callack.
annuler();

Advanced Usage

Usually, responding to signals dynamically can be accomplished by inspecting the signal argument passed to your callback. However, if it is important that listeners are only installed on a particular signal, you may optionally provide a custom array of signals to assign a callback to.

import adeiu from '@darkobits/adeiu';
 
// Register callback that will only be invoked on SIGINT.
adeiu(() => {
  // SIGINT cleanup tasks.
}, ['SIGINT']);
import adeiu, {SIGNALS} from '@darkobits/adeiu';
 
// Register callback with the default signals and SIGUSR1.
adeiu(() => {
  // Custom cleanup tasks.
}, [...SIGNALS, 'SIGUSR1']);

 


install

npm i @darkobits/adeiu

Downloadsweekly downloads

174

version

0.2.4

license

WTFPL

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability