🚀 DAY 2 OF LAUNCH WEEK: Announcing Socket Certified Patches: One-Click Fixes for Vulnerable Dependencies.Learn more →
Socket
Book a DemoInstallSign in
Socket

@dnlup/fastify-traps

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dnlup/fastify-traps

A Fastify plugin to close the server gracefully on SIGINT and SIGTERM signals

latest
Source
npmnpm
Version
3.1.0
Version published
Maintainers
1
Created
Source

fastify-traps

npm version Tests codecov Known Vulnerabilities

A fastify plugin to close the server gracefully on SIGINT and SIGTERM signals.

Install

$ npm i @dnlup/fastify-traps

Usage

Default

const fastify = require('fastify')()
const traps = require('@dnlup/fastify-traps')

fastify.register(traps)

fastify.get('/', (request, reply) => {
  reply.send({ ok: true })
})

fastify.listen(3000)

The plugin will use the instance logger to print out some pieces of information like the signal received and if it could close the fastify instance successfully.

Custom close timeout

By default, the plugin will wait 30 seconds for the server to close. After that, it will exit the process with code 1.

You can change the value of the timeout.

const fastify = require('fastify')()
const traps = require('@dnlup/fastify-traps')

fastify.register(traps, {
  timeout: 1000 // wait 1 second before forcing exiting
})

fastify.listen(3000)

Custom hooks

The plugin allows registering custom, synchronous functions to override the default hooks.

The context of a hook is bound to the fastify instance, so you can use this to refer to it.

const fastify = require('fastify')()
const traps = require('@dnlup/fastify-traps')

fastify.register(traps, {
  onSignal(signal) {
    this.log.debug(`Received signal ${signal}`)
  },
  onClose() {
    this.log.info('Server closed')
  },
  onTimeout(timeout) {
    this.log.error(`Forcing close after ${timeout} ms`)
  },
  onError(error) {
    this.log.error(`Uh oh: ${error.message}`)
  }
})

fastify.listen(3000)

Plugin options

  • timeout <number>: number of milliseconds to wait for the server to close
  • onSignal <function>: on signal custom hook
  • onClose <function>: on signal custom hook
  • onTimeout <function>: on signal custom hook
  • onError <function>: on signal custom hook
  • strict <boolean>: error if a SIGINT or SIGTERM handler is already registered. Default: true.

As said previously, the hooks' context is bound to the fastify instance, so you can use this to refer to it.

onSignal(signal)

  • signal <string>: the signal received

The plugin will call this hook when it received a SIGINT or SIGTERM signal.

onClose()

The plugin will call this hook when the server is closed.

onTimeout(timeout)

  • timeout <number>: the number of milliseconds of the timeout

The plugin will call this hook when the timeout for waiting for the server to close has expired.

onError(error)

  • error <Error|*>: the error that occurred while closing the server

The plugin will call this hook when there is an error when closing the server.

License

ISC

Keywords

fastify

FAQs

Package last updated on 29 Nov 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts