|
- 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<string, unknown>;
- 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<string, unknown>;
- if (!mutableServer['allStaticRoutes']) {
- mutableServer['allStaticRoutes'] = [];
- }
- })
- }
-
- export default fp(fastifyHomeRoute);
|