in core/steams-utils.js [14:55]
function chain(...streams) {
if (!Array.isArray(streams) || streams.length <= 0) {
throw new Error("At least one stream must be provided.");
}
/** @type {NodeJS.ReadWriteStream} */
let lastStream;
for (const stream of streams) {
lastStream = lastStream ? lastStream.pipe(stream) : stream;
}
const headStream = streams[0];
const proxy = new Transform({
objectMode: true,
flush(callback) {
headStream.end();
},
transform(chunk, encoding, callback) {
headStream.write(chunk);
callback();
}
});
lastStream.pipe(new Writable({
objectMode: true,
write(chunk, encoding, callback) {
proxy.push(chunk);
callback();
},
final(callback) {
proxy.push(null);
callback();
}
}));
return proxy;
}