From c5bdd9c398d0d2a5c44be5ca2c4384304ed1a048 Mon Sep 17 00:00:00 2001 From: Cedric Kassen Date: Wed, 12 Jul 2023 21:27:23 +0200 Subject: [PATCH] remove oversight asyncs and replace safeDeserializeMessage --- packages/grpc-js/src/server-call.ts | 28 ++++++++++++++-------------- packages/grpc-js/src/server.ts | 1 - 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/packages/grpc-js/src/server-call.ts b/packages/grpc-js/src/server-call.ts index e4dc1369..fc060de5 100644 --- a/packages/grpc-js/src/server-call.ts +++ b/packages/grpc-js/src/server-call.ts @@ -568,7 +568,7 @@ export class Http2ServerCallStream< this.stream.on('end', onEnd); this.stream.on('error', onEnd); - async function onData(chunk: Buffer) { + function onData(chunk: Buffer) { receivedLength += chunk.byteLength; if (limit !== -1 && receivedLength > limit) { @@ -586,7 +586,7 @@ export class Http2ServerCallStream< body.push(chunk); } - async function onEnd(err?: Error) { + function onEnd(err?: Error) { stream.removeListener('data', onData); stream.removeListener('end', onEnd); stream.removeListener('error', onEnd); @@ -615,13 +615,19 @@ export class Http2ServerCallStream< ); if (Buffer.isBuffer(decompressedMessage)) { - call.safeDeserializeMessage(decompressedMessage, resolve, reject); + call + .deserializeMessageWithInternalError(decompressedMessage) + .then(resolve) + .catch(reject); return; } decompressedMessage.then( decompressed => - call.safeDeserializeMessage(decompressed, resolve, reject), + call + .deserializeMessageWithInternalError(decompressed) + .then(resolve) + .catch(reject), (err: any) => reject( err.code @@ -636,20 +642,14 @@ export class Http2ServerCallStream< }); } - private safeDeserializeMessage( - buffer: Buffer, - resolve: ( - value: void | RequestType | PromiseLike - ) => void, - reject: (reason: any) => void - ) { + private async deserializeMessageWithInternalError(buffer: Buffer) { try { - resolve(this.deserializeMessage(buffer)); + return this.deserializeMessage(buffer); } catch (err) { - reject({ + throw { details: getErrorMessage(err), code: Status.INTERNAL, - }); + }; } } diff --git a/packages/grpc-js/src/server.ts b/packages/grpc-js/src/server.ts index 8aeacdd5..d1859c39 100644 --- a/packages/grpc-js/src/server.ts +++ b/packages/grpc-js/src/server.ts @@ -96,7 +96,6 @@ function getUnimplementedStatusResponse( return { code: Status.UNIMPLEMENTED, details: `The server does not implement the method ${methodName}`, - metadata: new Metadata(), }; }