Newton's Poleless Magnet

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

    1.1.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

    Install

    npm i fastify-get-head

    DownloadsWeekly Downloads

    0

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    23.4 kB

    Total Files

    13

    Last publish

    Collaborators

    • metcoder95