From c4d7fab13ea8a18e3bcf6b57bfb3220177ff2006 Mon Sep 17 00:00:00 2001 From: Robert Date: Tue, 2 Nov 2021 19:17:44 -0700 Subject: [PATCH] simplify compression filter handling of server supported encoding headers --- packages/grpc-js/src/compression-filter.ts | 8 ++++---- packages/grpc-js/test/test-server.ts | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/grpc-js/src/compression-filter.ts b/packages/grpc-js/src/compression-filter.ts index de35dd44..40825467 100644 --- a/packages/grpc-js/src/compression-filter.ts +++ b/packages/grpc-js/src/compression-filter.ts @@ -240,10 +240,10 @@ export class CompressionFilter extends BaseFilter implements Filter { this.sharedFilterConfig.serverSupportedEncodingHeader = serverSupportedEncodingsHeader; const serverSupportedEncodings = serverSupportedEncodingsHeader.split(','); - if ((this.sendCompression instanceof DeflateHandler && !serverSupportedEncodings.includes('deflate')) - || (this.sendCompression instanceof GzipHandler && !serverSupportedEncodings.includes('gzip'))) { - this.sendCompression = new IdentityHandler(); - } + if (!serverSupportedEncodings.includes(this.currentCompressionAlgorithm)) { + this.sendCompression = new IdentityHandler(); + this.currentCompressionAlgorithm = 'identity'; + } } metadata.remove('grpc-accept-encoding'); return metadata; diff --git a/packages/grpc-js/test/test-server.ts b/packages/grpc-js/test/test-server.ts index c0e7ebf5..cc20164a 100644 --- a/packages/grpc-js/test/test-server.ts +++ b/packages/grpc-js/test/test-server.ts @@ -33,6 +33,7 @@ import { loadProtoFile } from './common'; import { TestServiceClient, TestServiceHandlers } from './generated/TestService'; import { ProtoGrpcType as TestServiceGrpcType } from './generated/test_service'; import { Request__Output } from './generated/Request'; +import { CompressionAlgorithms } from '../src/compression-algorithms'; const loadedTestServiceProto = protoLoader.loadSync('test/fixtures/test_service.proto', { keepCase: true, @@ -683,7 +684,7 @@ describe('Compressed requests', () => { `localhost:${assignedPort}`, grpc.credentials.createInsecure(), { - 'grpc.default_compression_algorithm': 1 + 'grpc.default_compression_algorithm': CompressionAlgorithms.deflate } ); done(); @@ -774,7 +775,7 @@ describe('Compressed requests', () => { `localhost:${assignedPort}`, grpc.credentials.createInsecure(), { - 'grpc.default_compression_algorithm': 2 + 'grpc.default_compression_algorithm': CompressionAlgorithms.gzip } );