Skip to content

Commit

Permalink
rewrite CompressionAlgorithms to use numeric keys and export it
Browse files Browse the repository at this point in the history
  • Loading branch information
b0b3rt committed Oct 26, 2021
1 parent 9d70f39 commit 959503e
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 7 deletions.
14 changes: 7 additions & 7 deletions packages/grpc-js/src/compression-filter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,16 @@ import { BaseFilter, Filter, FilterFactory } from './filter';
import { Metadata, MetadataValue } from './metadata';
import { ChannelOptions } from './channel-options';

const CompressionAlgorithms = {
'0': 'identity',
'1': 'deflate',
'2': 'gzip'
export const CompressionAlgorithms = {
0: 'identity',
1: 'deflate',
2: 'gzip'
} as const;

const CompressionAlgorithKeys = new Set(Object.keys(CompressionAlgorithms));

const isCompressionAlgorithmKey = (key: string | undefined): key is keyof typeof CompressionAlgorithms => {
return typeof key === 'string' && CompressionAlgorithKeys.has(key);
const isCompressionAlgorithmKey = (key: number | undefined): key is keyof typeof CompressionAlgorithms => {
return typeof key === 'number' && CompressionAlgorithKeys.has(key.toString());
}

type CompressionAlgorithm = (typeof CompressionAlgorithms)[keyof typeof CompressionAlgorithms];
Expand Down Expand Up @@ -187,7 +187,7 @@ export class CompressionFilter extends BaseFilter implements Filter {
constructor(channelOptions: ChannelOptions) {
super();

const compressionAlgorithmKey = channelOptions['grpc.default_compression_algorithm']?.toString();
const compressionAlgorithmKey = channelOptions['grpc.default_compression_algorithm'];
if (isCompressionAlgorithmKey(compressionAlgorithmKey)) {
this.defaultCompressionAlgorithm = CompressionAlgorithms[compressionAlgorithmKey];
this.sendCompression = getCompressionHandler(this.defaultCompressionAlgorithm);
Expand Down
2 changes: 2 additions & 0 deletions packages/grpc-js/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import {
import { CallCredentials, OAuth2Client } from './call-credentials';
import { Deadline, StatusObject } from './call-stream';
import { Channel, ChannelImplementation } from './channel';
import { CompressionAlgorithms } from './compression-filter';
import { ConnectivityState } from './connectivity-state';
import { ChannelCredentials } from './channel-credentials';
import {
Expand Down Expand Up @@ -124,6 +125,7 @@ export {
Status as status,
ConnectivityState as connectivityState,
Propagate as propagate,
CompressionAlgorithms as compressionAlgorithms
// TODO: Other constants as well
};

Expand Down

0 comments on commit 959503e

Please sign in to comment.