import fp from 'fastify-plugin'; import {FastifyInstance} from 'fastify'; declare module 'fastify' { interface FastifyInstance { allStaticRoutes: { method: string, url: string, }[] } } const fastifyHomeRoute = async (app: FastifyInstance) => { app.decorateRequest('allStaticRoutes', null); app.addHook('onRoute', (routeData) => { if (routeData.url.includes('/:')) { return; } const mutableServer = app as unknown as Record; mutableServer['allStaticRoutes'] = !Array.isArray(mutableServer['allStaticRoutes']) ? [ { method: routeData.method, url: routeData.url, } ] : [ ...mutableServer['allStaticRoutes'], { method: routeData.method, url: routeData.url, }, ]; }); app.addHook('onReady', () => { const mutableServer = app as unknown as Record; if (!mutableServer['allStaticRoutes']) { mutableServer['allStaticRoutes'] = []; } }) } export default fp(fastifyHomeRoute);