From 1e32a1600428838fca831548c217b0f2f4a58d67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roberto=20Pintos=20L=C3=B3pez?= Date: Mon, 30 Dec 2024 22:21:38 +0100 Subject: [PATCH 1/4] feat: update BaseMiddleware to allow async handlers --- src/base_middleware.ts | 2 +- src/server.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/base_middleware.ts b/src/base_middleware.ts index da7fbab0..d1932f73 100644 --- a/src/base_middleware.ts +++ b/src/base_middleware.ts @@ -18,5 +18,5 @@ export abstract class BaseMiddleware implements BaseMiddleware { req: Request, res: Response, next: NextFunction - ): void; + ): void | Promise; } diff --git a/src/server.ts b/src/server.ts index 1994f31b..ced68b84 100644 --- a/src/server.ts +++ b/src/server.ts @@ -209,7 +209,7 @@ export class InversifyExpressServer { return (req: Request, res: Response, next: NextFunction): void => { const mReq = this._container.get(middlewareItem); mReq.httpContext = this._getHttpContext(req); - mReq.handler(req, res, next); + void mReq.handler(req, res, next); }; } From b1d8d8a1625e461b7fa165917e83ed8e76a2e6b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roberto=20Pintos=20L=C3=B3pez?= Date: Mon, 30 Dec 2024 22:28:42 +0100 Subject: [PATCH 2/4] fix: update Server.resolveMiddleware update resolveMiddleware to return handler result --- src/server.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server.ts b/src/server.ts index ced68b84..b06956f3 100644 --- a/src/server.ts +++ b/src/server.ts @@ -206,10 +206,10 @@ export class InversifyExpressServer { const middlewareInstance = this._container.get(middlewareItem); if (middlewareInstance instanceof BaseMiddleware) { - return (req: Request, res: Response, next: NextFunction): void => { + return (req: Request, res: Response, next: NextFunction): void | Promise => { const mReq = this._container.get(middlewareItem); mReq.httpContext = this._getHttpContext(req); - void mReq.handler(req, res, next); + return mReq.handler(req, res, next); }; } From 75c703fae6dfe8be36c4a7f03fe7135bb1874085 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roberto=20Pintos=20L=C3=B3pez?= Date: Mon, 30 Dec 2024 22:31:44 +0100 Subject: [PATCH 3/4] docs: update docs --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ac1e60f7..69687d89 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added ### Changed +- Updated `BaseMiddleware.handler` to allow async handlers. ### Fixed From b5b12f7ca09968b2cefaa75df44897f7c04c7b97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roberto=20Pintos=20L=C3=B3pez?= Date: Thu, 30 Jan 2025 02:08:29 +0100 Subject: [PATCH 4/4] feat: update server to return handler result --- src/server.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/server.ts b/src/server.ts index 8fa8dc6e..3d4558f1 100644 --- a/src/server.ts +++ b/src/server.ts @@ -265,11 +265,16 @@ export class InversifyExpressServer { this._container.get(middlewareItem); if (middlewareInstance instanceof BaseMiddleware) { - return (req: Request, res: Response, next: NextFunction): void => { + return ( + req: Request, + res: Response, + next: NextFunction, + ): void | Promise => { const mReq: BaseMiddleware = this._container.get(middlewareItem); mReq.httpContext = this._getHttpContext(req); - mReq.handler(req, res, next); + + return mReq.handler(req, res, next); }; }