mirror of
https://github.com/grpc/grpc-node.git
synced 2025-12-08 18:23:54 +00:00
rewrite CompressionAlgorithms to use numeric keys and export it
This commit is contained in:
parent
9d70f39b7e
commit
959503ec94
@ -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];
|
||||
@ -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);
|
||||
|
||||
@ -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 {
|
||||
@ -124,6 +125,7 @@ export {
|
||||
Status as status,
|
||||
ConnectivityState as connectivityState,
|
||||
Propagate as propagate,
|
||||
CompressionAlgorithms as compressionAlgorithms
|
||||
// TODO: Other constants as well
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user