Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
@dnlup/fastify-traps
Advanced tools
A Fastify plugin to close the server gracefully on SIGINT and SIGTERM signals
A fastify plugin to close the server gracefully on SIGINT and SIGTERM signals.
$ npm i @dnlup/fastify-traps
If you are using fastify 3, use the version 1
of the plugin:
$ npm i @dnlup/fastify-traps@1
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.
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)
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)
timeout
<number>
: number of milliseconds to wait for the server to closeonSignal
<function>
: on signal custom hookonClose
<function>
: on signal custom hookonTimeout
<function>
: on signal custom hookonError
<function>
: on signal custom hookstrict
<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.
signal
<string>
: the signal receivedThe plugin will call this hook when it received a SIGINT
or SIGTERM
signal.
The plugin will call this hook when the server is closed.
timeout
<number>
: the number of milliseconds of the timeoutThe plugin will call this hook when the timeout for waiting for the server to close has expired.
error
<Error|*>
: the error that occurred while closing the serverThe plugin will call this hook when there is an error when closing the server.
FAQs
A Fastify plugin to close the server gracefully on SIGINT and SIGTERM signals
The npm package @dnlup/fastify-traps receives a total of 1,506 weekly downloads. As such, @dnlup/fastify-traps popularity was classified as popular.
We found that @dnlup/fastify-traps demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
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.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.