A simple plugin for Fastify prints all available routes.
http://sw.cowtech.it/fastify-print-routes
Just run:
npm install fastify-print-routes --save
Register as a plugin as early as possible, optional providing any of the following options:
useColors
: If to use colors to highlight routes.Routes can be omitted by the list by setting hide
option to true
inside their config
.
Once the server is started, it will print on the console all available routes and methods.
import fastify from 'fastify'
import fastifyPrintRoutes from 'fastify-print-routes'
const server = fastify()
/*
Since fastify-print-routes uses an onRoute hook, you have to either:
* use `await register...`
* wrap you routes definitions in a plugin
See: https://www.fastify.io/docs/latest/Guides/Migration-Guide-V4/#synchronous-route-definitions
*/
await server.register(fastifyPrintRoutes)
server.get('/path1', {
async handler() {
return { ok: true }
}
})
server.route({
url: '/path2/:params',
method: ['POST', 'GET'],
async handler() {
return { ok: true }
},
config: {
description: 'Title'
}
})
server.route({
url: '/path3',
method: ['POST', 'GET'],
async handler() {
return { ok: true }
},
config: {
hide: true
}
})
server.listen({ port: 3000 }, () => {
console.log(`Server listening on port ${server.server.address().port} ...`)
})
Once started, this will be printed to the console:
Available routes:
╔════════════╤════════════════╤═════════════╗
║ Method(s) │ Path │ Description ║
╟────────────┼────────────────┼─────────────╢
║ GET │ /path1 │ ║
║ HEAD │ /path1 │ ║
║ GET | POST │ /path2/:params │ Title ║
╚════════════╧════════════════╧═════════════╝
Server listening on port 60792 ...
This package only supports to be directly imported in a ESM context.
For informations on how to use it in a CommonJS context, please check this page.
Copyright (C) 2020 and above Shogun (shogun@cowtech.it).
Licensed under the ISC license, which can be found at https://choosealicense.com/licenses/isc.