Transform stream that gunzips its input if it is gzipped and just echoes it if not.
npm install gunzip-maybe
Simply pipe a gzipped (or not gzipped) stream to gunzip([maxRecursion = 3])
and read the unzipped content.
maxRecursion
protects the unzip mechanism from an infinite recursion in case of a malicious archive.
// this will gunzip gzippedStream
gzippedStream.pipe(gunzip()).pipe(process.stdout);
// this will just echo plainTextStream
plainTextStream.pipe(gunzip()).pipe(process.stdout);
npm install -g gunzip-maybe
gunzip-maybe --help # will print out usage
MIT