stromjs
Version:
Dependency-free streams utils for Node.js
32 lines (31 loc) • 1.01 kB
JavaScript
exports.__esModule = true;
exports.duplex = void 0;
var stream_1 = require("stream");
function duplex(writable, readable) {
var wrapper = new stream_1.Duplex({
readableObjectMode: true,
writableObjectMode: true,
read: function () {
readable.resume();
},
write: function (chunk, encoding, callback) {
return writable.write(chunk, encoding, callback);
},
final: function (callback) {
writable.end(callback);
}
});
readable
.on("data", function (chunk) {
if (!wrapper.push(chunk)) {
readable.pause();
}
})
.on("error", function (err) { return wrapper.emit("error", err); })
.on("end", function () { return wrapper.push(null); });
writable.on("drain", function () { return wrapper.emit("drain"); });
writable.on("error", function (err) { return wrapper.emit("error", err); });
return wrapper;
}
exports.duplex = duplex;
;