MCPcopy
hub / github.com/mongodb/node-mongodb-native / compress

Function compress

src/cmap/wire_protocol/compression.ts:78–107  ·  view source on GitHub ↗
(
  options: OpCompressesRequestOptions,
  dataToBeCompressed: Uint8Array
)

Source from the content-addressed store, hash-verified

76
77// Facilitate compressing a message using an agreed compressor
78export async function compress(
79 options: OpCompressesRequestOptions,
80 dataToBeCompressed: Uint8Array
81): Promise<Uint8Array> {
82 const zlibOptions = {} as zlib.ZlibOptions;
83 switch (options.agreedCompressor) {
84 case 'snappy': {
85 Snappy ??= loadSnappy();
86 return await Snappy.compress(dataToBeCompressed);
87 }
88 case 'zstd': {
89 loadZstd();
90 if ('kModuleError' in zstd) {
91 throw zstd['kModuleError'];
92 }
93 return await zstd.compress(dataToBeCompressed, ZSTD_COMPRESSION_LEVEL);
94 }
95 case 'zlib': {
96 if (options.zlibCompressionLevel) {
97 zlibOptions.level = options.zlibCompressionLevel;
98 }
99 return await zlibDeflate(dataToBeCompressed, zlibOptions);
100 }
101 default: {
102 throw new MongoInvalidArgumentError(
103 `Unknown compressor ${options.agreedCompressor} failed to compress`
104 );
105 }
106 }
107}
108
109// Decompress a message using the given compressor
110export async function decompress(

Callers 4

toBinMethod · 0.90
commands.test.tsFile · 0.85

Calls 3

loadSnappyFunction · 0.85
loadZstdFunction · 0.85
zlibDeflateFunction · 0.85

Tested by

no test coverage detected