Code
nodejs
import { createReadStream, createWriteStream } from "fs";
import { Transform, pipeline } from "stream";
import { createGzip } from "zlib";
// Transform stream that uppercases text
const upper = new Transform({
transform(chunk, encoding, callback) {
this.push(chunk.toString().toUpperCase());
callback();
}
});
// Pipeline handles backpressure and error propagation
pipeline(
createReadStream("input.txt"),
upper,
createGzip(),
createWriteStream("output.txt.gz"),
err => {
if (err) console.error("pipeline failed", err);
else console.log("done");
}
);
// Consuming a stream with async iteration
import { stdout } from "process";
for await (const chunk of createReadStream("input.txt")) {
stdout.write(chunk);
}