rekwest
Version:
The robust request library that humanity deserves 🌐
55 lines (54 loc) • 2.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.encodeCodecs = exports.encode = exports.decodeCodecs = exports.decode = void 0;
var _nodeStream = require("node:stream");
var _nodeZlib = _interopRequireDefault(require("node:zlib"));
var _config = require("./config.cjs");
var _utils = require("./utils.cjs");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const decodeCodecs = exports.decodeCodecs = {
br: opts => _nodeZlib.default.createBrotliDecompress(opts?.brotli),
deflate: opts => _nodeZlib.default.createInflate(opts?.zlib),
'deflate-raw': opts => _nodeZlib.default.createInflateRaw(opts?.zlib),
gzip: opts => _nodeZlib.default.createGunzip(opts?.zlib),
zstd: opts => _config.isZstdSupported && _nodeZlib.default.createZstdDecompress(opts?.zstd)
};
const decode = (readable, encodings = '', {
decodersOptions
} = {}) => {
const decoders = [];
encodings = (0, _utils.unwind)(encodings).reverse();
for (const encoding of encodings) {
const decoder = decodeCodecs[encoding]?.(decodersOptions);
if (!decoder) {
return readable;
}
decoders.push(decoder);
}
return (0, _nodeStream.pipeline)(readable, ...decoders, () => void 0);
};
exports.decode = decode;
const encodeCodecs = exports.encodeCodecs = {
br: opts => _nodeZlib.default.createBrotliCompress(opts?.brotli),
deflate: opts => _nodeZlib.default.createDeflate(opts?.zlib),
'deflate-raw': opts => _nodeZlib.default.createDeflateRaw(opts?.zlib),
gzip: opts => _nodeZlib.default.createGzip(opts?.zlib),
zstd: opts => _config.isZstdSupported && _nodeZlib.default.createZstdCompress(opts?.zstd)
};
const encode = (readable, encodings = '', {
encodersOptions
} = {}) => {
const encoders = [];
encodings = (0, _utils.unwind)(encodings);
for (const encoding of encodings) {
const encoder = encodeCodecs[encoding]?.(encodersOptions);
if (!encoder) {
return readable;
}
encoders.push(encoder);
}
return (0, _nodeStream.pipeline)(readable, ...encoders, () => void 0);
};
exports.encode = encode;