fastify-get-head
v3.0.0
Published
Set a HEAD route handler for each GET handler previously registered
Downloads
5
Maintainers
Readme
fastify-get-head
A plugin for Fastify that adds support for setting a HEAD
route for each GET
one previously registered.
This plugin's works via Fastify's onRoute
hook. When a new route is registered, the plugin will try to set a new HEAD
route if the registered one is for a GET
method and is not ignored by the ignorePaths
option.
Note: fastify-get-head
only supports Fastify@>=3.8 <= 3.9
Example
const fastify = require('fastify')();
fastify.register(require('fastify-get-head'), {
ignorePaths: ['/api/ignore', /\/api\/ignore\/too/], // For ignoring specific paths
});
fastify.get('/', (req, reply) => {
reply.status(200).send({ hello: 'world' });
});
// The plugin will create a new HEAD route where just the headers will be sent
// Same as doing:
/**
* fastify.head('/', (req, reply) => {
* reply.headers({
* ['content-length']: Buffer.from(JSON.stringify({ hello: 'world' })).byteLength
* ['content-type']: 'application/json'
* });
* reply.status(200).send(null);
* });
Options
ignorePaths
You're able to use either string
and regex
or even the combination of both with the use of an array. This to choose which routes you want to ignore. Remember that only GET
routes are taking into consideration.
Example:
fastify.register(require('fastify-get-head'), {
ignorePaths: '/api/ignore', // will ignore just `/api/ignore` path
});
fastify.register(require('fastify-get-head'), {
ignorePaths: /\/api\/regex/, // this works as well
});
fastify.register(require('fastify-get-head'), {
ignorePaths: ['/api/ignore', '/api/ignore/string'], // also works
});
fastify.register(require('fastify-get-head'), {
ignorePaths: ['/api/ignore', /\/api\/regex/], // this works as well!
});