DefinitelyTyped/types/duplexer2/duplexer2-tests.ts
Simon Oulevay c04cbed8b0 [duplexer2] Support regular stream.Duplex options (#35122)
As documented in https://www.npmjs.com/package/duplexer2#duplexer2-1,
options should not only be the duplexer2-specific `bubbleErrors` option,
but also regular stream.Duplex options.
2019-05-02 10:28:25 -07:00

56 lines
1.2 KiB
TypeScript

import stream = require("stream");
import duplexer2 = require("duplexer2");
const writable = new stream.Writable({ objectMode: true });
const readable = new stream.Readable({ objectMode: true });
writable.once("finish", () => {
setTimeout(() => {
readable.push(null);
}, 500);
});
const duplex = duplexer2(writable, readable);
duplex.on("data", (e: any) => {
console.log("got data", JSON.stringify(e));
});
duplex.on("finish", () => {
console.log("got finish event");
});
duplex.on("end", () => {
console.log("got end event");
});
duplex.write("oh, hi there", () => {
console.log("finished writing");
});
duplex.end("", () => {
console.log("finished ending");
});
const duplexWithOptions = duplexer2({ readableObjectMode: true, writableObjectMode: true }, writable, readable);
duplexWithOptions.on("data", (e: any) => {
console.log("got data", JSON.stringify(e));
});
duplexWithOptions.on("finish", () => {
console.log("got finish event");
});
duplexWithOptions.on("end", () => {
console.log("got end event");
});
duplexWithOptions.write("oh, hi there", () => {
console.log("finished writing");
});
duplexWithOptions.end("", () => {
console.log("finished ending");
});