decentralised message store

feat: pre handler hooks

serenity d672dede 00459876

Changed files
+13 -7
src
lib
types
+9 -6
src/index.ts
···
handler,
});
} else {
-
const { wsHandler, method, handler } = route;
-
server.route({
-
url,
-
method: method ?? "GET",
-
handler: handler ?? (() => new Response()),
-
wsHandler,
+
const { wsHandler, method, handler, preHandler } = route;
+
server.register(() => {
+
server.route({
+
url,
+
method: method ?? "GET",
+
handler: handler ?? (() => new Response()),
+
wsHandler,
+
preHandler,
+
});
});
}
}
+4 -1
src/lib/types/routes.ts
···
-
import type { FastifyReply, FastifyRequest } from "fastify";
+
import type { FastifyReply, FastifyRequest, HookHandlerDoneFunction } from "fastify";
import type { WebSocket } from "ws";
export type RouteHandler = (
req: FastifyRequest,
reply: FastifyReply,
) => Response | Promise<Response>;
+
+
export type PreHandler = (req: FastifyRequest, reply: FastifyReply, done: HookHandlerDoneFunction) => void;
export type Method = "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
···
method?: Method;
handler?: RouteHandler;
wsHandler: WsRouteHandler;
+
preHandler?: PreHandler;
}