better-fastify-405
TypeScript icon, indicating that this package has built-in type declarations

0.2.0 • Public • Published

Better Fastify 405

A simple and fully customizable Fastify plugin for handling 405 gracefully.

Maintainability Codacy Badge Test Coverage

Why do I need this?

By default Fastify suppress error 405 and with return 404 instead. A 405 error would improve the development experience.

fastify-405 was built to solve this issue, but it requires you to input a RegExp for the route you want to handle 405.

This plugin is meant to read from your current route setting, and create routes that return 405 automatically.

Installation

npm add better-fastify-405
yarn add better-fastify-405

Usage

//app.js
import fastify, { FastifyRequest, FastifyReply, FastifyInstance, HookHandlerDoneFunction, RouteOptions } from 'fastify';

const app: FastifyInstance = fastify({
  logger: true
})

//Other plugins
app.register(import("fastify-etag"))
app.register(import('plugins/better-fastify-405'), {
  routes: [
    //Required.
		//Register all your route here, or else this plugin would not work.
    import('./routes/index'),
    import('./routes/protected')
		//All the route will be registered inside the plugin. Do not use app.register() here.
  ],
  filterCallback: ({ route, method }) => {
    // Optional
    // A callback to allow you filter out specific route and specific method from assigning it to 405

    //Route: route registered
    //Method: method available to apply 405
    return true
  }
})

Do not mark OPTIONS route with 405

A function allowCORS is provided to help you not mark OPTIONS for 405.

import better405, { allowCORS } from 'better-fastify-405'

import fastify, { FastifyRequest, FastifyReply, FastifyInstance, HookHandlerDoneFunction, RouteOptions } from 'fastify';

const app: FastifyInstance = fastify({
  logger: true
})

//Other plugins
app.register(import("fastify-etag"))
app.register(better405, {
  routes: [
    import('./routes/index'),
    import('./routes/protected')
  ],
  filterCallback: allowCORS
})

Package Sidebar

Install

npm i better-fastify-405

Weekly Downloads

11

Version

0.2.0

License

MIT

Unpacked Size

6.51 kB

Total Files

8

Last publish

Collaborators

  • johnwinston0410