From 5ac9a1c2b617e4ea0dab56a73c60564e9fc5b1bb Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Mon, 25 Jan 2021 13:24:39 -0800 Subject: [PATCH] grpc-js: Move call to user code out of try block --- packages/grpc-js/package.json | 2 +- packages/grpc-js/src/client-interceptors.ts | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/grpc-js/package.json b/packages/grpc-js/package.json index 60d3c908f..01a9d418f 100644 --- a/packages/grpc-js/package.json +++ b/packages/grpc-js/package.json @@ -1,6 +1,6 @@ { "name": "@grpc/grpc-js", - "version": "1.2.4", + "version": "1.2.5", "description": "gRPC Library for Node - pure JS implementation", "homepage": "https://grpc.io/", "repository": "https://github.com/grpc/grpc-node/tree/master/packages/grpc-js", diff --git a/packages/grpc-js/src/client-interceptors.ts b/packages/grpc-js/src/client-interceptors.ts index 09e7f5aa5..a7cc2f878 100644 --- a/packages/grpc-js/src/client-interceptors.ts +++ b/packages/grpc-js/src/client-interceptors.ts @@ -347,10 +347,11 @@ class BaseInterceptingCall implements InterceptingCallInterface { let serialized: Buffer; try { serialized = this.methodDefinition.requestSerialize(message); - this.call.sendMessageWithContext(context, serialized); } catch (e) { this.call.cancelWithStatus(Status.INTERNAL, `Request message serialization failure: ${e.message}`); + return; } + this.call.sendMessageWithContext(context, serialized); } // eslint-disable-next-line @typescript-eslint/no-explicit-any sendMessage(message: any) { @@ -370,7 +371,6 @@ class BaseInterceptingCall implements InterceptingCallInterface { let deserialized: any; try { deserialized = this.methodDefinition.responseDeserialize(message); - interceptingListener?.onReceiveMessage?.(deserialized); } catch (e) { readError = { code: Status.INTERNAL, @@ -378,7 +378,9 @@ class BaseInterceptingCall implements InterceptingCallInterface { metadata: new Metadata(), }; this.call.cancelWithStatus(readError.code, readError.details); + return; } + interceptingListener?.onReceiveMessage?.(deserialized); }, onReceiveStatus: (status) => { if (readError) {