npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@hypercliq/shutdown-cleanup

v7.0.0

Published

Module to handle graceful shutdowns

Downloads

450

Readme

Shutdown-Cleanup Module

npm npm NPM

The shutdown-cleanup module provides a structured approach for managing graceful shutdowns in Node.js applications. It supports phased shutdowns, signal-specific handlers, customizable error handling strategies, and custom exit codes, ensuring broad compatibility with LTS Node.js versions.

Features

  • Phased Shutdown: Organizes shutdown logic into phases for orderly execution.
  • Signal-Specific Handlers: Custom logic for specific signals without mandatory shutdown.
  • Error Handling Strategy: Customizable handling of handler errors, including proper management of synchronous and asynchronous handlers to prevent unhandled promise rejections.
  • Custom Exit Codes: Specify exit codes to indicate shutdown statuses.
  • Graceful Shutdown with Timeout: Prevents indefinite hangs during shutdown. (See Developer Guide for details.)
  • LTS Node.js Support: Compatible with LTS Node.js versions.
  • Enhanced Flexibility: Supports handling of custom application events.
  • TypeScript Support: Includes TypeScript definitions for ease of development.

Installation

npm install @hypercliq/shutdown-cleanup

Or using Yarn:

yarn add @hypercliq/shutdown-cleanup

Usage

To use shutdown-cleanup, import and utilize its functions within your application to manage shutdown logic effectively. Both synchronous and asynchronous handlers are supported.

import { registerHandler } from '@hypercliq/shutdown-cleanup'

// Asynchronous handler
registerHandler(async (signal) => {
  await performCleanup()
  console.log('Async cleanup completed')
})

// Synchronous handler
registerHandler((signal) => {
  performSyncCleanup()
  console.log('Sync cleanup completed')
})

Examples and Best Practices

For more detailed usage examples and best practices, see the Developer Guide.

Contributing to Shutdown-Cleanup

We encourage contributions! If you have suggestions, bug reports, or would like to contribute code, please submit issues or pull requests on GitHub. For major changes, start by opening an issue to discuss your ideas.

Thank you for using and contributing to the shutdown-cleanup module!

How to Contribute

  1. Fork the repository
  2. Create a new branch for your feature or bug fix
  3. Make your changes
  4. Commit your changes
  5. Push your changes to your fork
  6. Open a pull request
  7. Wait for review and merge
  8. Celebrate your contribution!

Remember to add tests for your changes and ensure that all tests pass before submitting a pull request. Also, lint and format your code according to the project's standards.

License

This project is licensed under the MIT License - see the LICENSE file for details.