@whatwg-node/node-fetch
Version:
Fetch API implementation for Node
28 lines (27 loc) • 1.04 kB
JavaScript
import { createBrotliDecompress, createGunzip, createInflate, createInflateRaw } from 'node:zlib';
import { PonyfillTransformStream } from './TransformStream.js';
export class PonyfillDecompressionStream extends PonyfillTransformStream {
static supportedFormats = globalThis.process?.version?.startsWith('v2')
? ['gzip', 'deflate', 'br']
: ['gzip', 'deflate', 'deflate-raw', 'br'];
constructor(compressionFormat) {
switch (compressionFormat) {
case 'x-gzip':
case 'gzip':
super(createGunzip());
break;
case 'x-deflate':
case 'deflate':
super(createInflate());
break;
case 'deflate-raw':
super(createInflateRaw());
break;
case 'br':
super(createBrotliDecompress());
break;
default:
throw new TypeError(`Unsupported compression format: '${compressionFormat}'`);
}
}
}