better-fastify-405
v0.2.0
Published
A better plugin for handling 405 in Fastify
Downloads
13
Maintainers
Readme
Better Fastify 405
A simple and fully customizable Fastify plugin for handling 405 gracefully.
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
})