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.compact
: If to show all routes of the same path in a single line even if they are defined using different handlers. Descripion of unified routes will not be printed.filter
: If provided, a function that receives a route and should return a boolean to determine if the route should be print or not.querystring
: If to include querystrings in the URLs.Routes can also 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.