gracy
TypeScript icon, indicating that this package has built-in type declarations

4.1.0 • Public • Published

gracy

CI status license npm version

Gracy is a zero-dependency library that provides a simple way to execute custom function before a Node.js process exits. It helps you ensure that your applications perform cleanup tasks, gracefully close resources, and maintain data integrity during (un)expected shutdowns or terminations.

Installation

pnpm i -E gracy

Usage

import { onExit } from 'gracy'

onExit(
    async () => {
        closeHttpServer()
        await closeDatabaseConnection()
    },
    { logger: pinoInstance }
)

Configuration

The onExit function accepts an configuration object as its second argument. The following options are available:

Name Default value Description
logger console Logger to use. You should use libraries for structured logging such as pino. Set to false to disable logging.
logLevel 'info' Log level to use. Valid options are 'debug', 'info', 'error'.
logPrefix '[gracy] ' Prefix to use for log messages. Set to empty string to disable prefixing.
timeout 10_000 Timeout (in milliseconds) to wait for the function to finish. If the function does not finish in time, the process will exit with code 1.
events ['uncaughtException', 'unhandledRejection'] Events to listen to. Triggering these events will cause the process to exit with code 1.
signals ['SIGTERM', 'SIGINT'] Signals to listen to. Triggering these signals will cause the process to exit with code 0.

License

MIT

Package Sidebar

Install

npm i gracy

Weekly Downloads

4

Version

4.1.0

License

MIT

Unpacked Size

52 kB

Total Files

23

Last publish

Collaborators

  • samialdury