https://github.com/samialdury/gracy
Execute custom cleanup function before Node.js exits. DEPRECATED - use https://github.com/mcollina/close-with-grace
https://github.com/samialdury/gracy
cleanup close exit graceful gracy node nodejs process shutdown signal terminate
Last synced: about 2 months ago
JSON representation
Execute custom cleanup function before Node.js exits. DEPRECATED - use https://github.com/mcollina/close-with-grace
- Host: GitHub
- URL: https://github.com/samialdury/gracy
- Owner: samialdury
- License: mit
- Archived: true
- Created: 2023-04-02T12:52:09.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-27T16:52:21.000Z (9 months ago)
- Last Synced: 2025-08-23T22:31:34.580Z (about 2 months ago)
- Topics: cleanup, close, exit, graceful, gracy, node, nodejs, process, shutdown, signal, terminate
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/gracy
- Size: 442 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# `gracy`
> [!WARNING]
> This package and repository are deprecated and no longer maintained. For alternative, see [close-with-grace](https://github.com/mcollina/close-with-grace).[](https://github.com/samialdury/gracy/actions/workflows/ci.yml)
[](LICENSE)
[](https://www.npmjs.com/package/gracy)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
```sh
pnpm i -E gracy
```## Usage
```ts
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](https://github.com/pinojs/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](LICENSE)