fastify-get-head
TypeScript icon, indicating that this package has built-in type declarations

3.0.0 • Public • Published

fastify-get-head

npm Build Status JavaScript Style Guide

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!
});

License

MIT License

Package Sidebar

Install

npm i fastify-get-head

Weekly Downloads

8

Version

3.0.0

License

MIT

Unpacked Size

19.8 kB

Total Files

8

Last publish

Collaborators

  • metcoder95