lau1944/bunrest

Incorrect type definitions and switched variable for errorHandler

MikkelSVDK opened this issue · 0 comments

In this example the middleware is "wrongly" classed as a Handler and not a MiddlewareFunc

(method) BunServer.use(middleware: Handler): void
app.use((req: BunRequest, res: BunResponse, next: ((err?: Error | undefined) => {}) | undefined) => {
  console.log("middlewares called");
  next!(); // Results in next() possible undefined
})

What it should classify it as src/server/request.ts

11 export type MiddlewareFunc = (
12   req: Request,
13   res: BunResponse,
14   next: (err?: Error) => {}
15 ) => void;

The errorhandler in src/server/server.ts also switches the err and next function around based on the type definitions from src/server/request.ts

4 export type Handler = (
5   req: BunRequest,
6   res: BunResponse,
7   next?: (err?: Error) => {},
8   err?: Error
9 ) => void | Promise<any>;

src/server/server.ts

229 that.errorHandlers.forEach((handler) => {
230   // * no request object pass to error handler
231   handler.apply(that, [null, res, err, next]);
232 });