From ef7bfe8332510fec06c6f2f819174f7f702dbc7d Mon Sep 17 00:00:00 2001 From: Romain Lenzotti Date: Mon, 4 Mar 2024 08:01:45 +0100 Subject: [PATCH] fix(common): remove catchAsync to let framework handle errors Signed-off-by: Romain Lenzotti --- .../platform/common/src/services/PlatformHandler.spec.ts | 2 ++ packages/platform/common/src/services/PlatformHandler.ts | 7 +++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/platform/common/src/services/PlatformHandler.spec.ts b/packages/platform/common/src/services/PlatformHandler.spec.ts index 076ce73cc25..9acb9b6ad63 100644 --- a/packages/platform/common/src/services/PlatformHandler.spec.ts +++ b/packages/platform/common/src/services/PlatformHandler.spec.ts @@ -63,6 +63,7 @@ describe("PlatformHandler", () => { }); const $ctx = PlatformTest.createRequestContext(); + $ctx.endpoint = EndpointMetadata.get(Test, "get"); const result = service.createHandler(metadata); @@ -271,6 +272,7 @@ describe("PlatformHandler", () => { expect(handler).toHaveBeenCalled(); expect(middleware).toHaveBeenCalled(); }); + it("should not call flush when is a stream", async () => { @Injectable() class TestService { diff --git a/packages/platform/common/src/services/PlatformHandler.ts b/packages/platform/common/src/services/PlatformHandler.ts index 692985075b5..935005d657b 100644 --- a/packages/platform/common/src/services/PlatformHandler.ts +++ b/packages/platform/common/src/services/PlatformHandler.ts @@ -64,7 +64,7 @@ export class PlatformHandler { return async ($ctx: PlatformContext) => { $ctx.handlerMetadata = handlerMetadata; - await catchAsyncError(() => this.onRequest(handler, $ctx)); + await this.onRequest(handler, $ctx); return this.next($ctx); }; @@ -117,7 +117,7 @@ export class PlatformHandler { return; } - return $ctx.error ? $ctx.next($ctx.error) : $ctx.next(); + return $ctx.next && $ctx.error ? $ctx.next($ctx.error) : $ctx.next(); } /** @@ -146,7 +146,6 @@ export class PlatformHandler { const resolver = new AnyToPromiseWithCtx($ctx); const {state, type, data, status, headers} = await resolver.call(handler); - // Note: restore previous handler metadata (for OIDC) $ctx.handlerMetadata = handlerMetadata; @@ -183,7 +182,7 @@ export class PlatformHandler { } } catch (error) { $ctx.error = error; - + // TODO on v8, we have to use platformExceptions.catch directly. Error middleware won't be supported anymore throw error; } }