{"_id":"@floatdrop/duplexer2","_rev":"44831","name":"@floatdrop/duplexer2","description":"Like duplexer but using streams3","dist-tags":{"latest":"0.1.4"},"maintainers":[{"name":"floatdrop","email":"floatdrop@gmail.com"}],"time":{"modified":"2021-06-03T10:13:48.000Z","created":"2015-12-06T08:52:31.470Z","0.1.4":"2015-12-06T08:52:31.470Z"},"users":{"soldair":true},"author":{"name":"Conrad Pankoff","email":"deoxxa@fknsrs.biz","url":"http://www.fknsrs.biz/"},"repository":{"type":"git","url":"https://github.com/deoxxa/duplexer2"},"versions":{"0.1.4":{"name":"@floatdrop/duplexer2","version":"0.1.4","description":"Like duplexer but using streams3","files":["index.js"],"scripts":{"test":"mocha -R tap"},"repository":{"type":"git","url":"https://github.com/deoxxa/duplexer2"},"keywords":["duplex","duplexer","stream","stream3","join","combine"],"author":{"name":"Conrad Pankoff","email":"deoxxa@fknsrs.biz","url":"http://www.fknsrs.biz/"},"license":"BSD-3-Clause","devDependencies":{"mocha":"^2.2.5"},"gitHead":"2c3edc1bfd316806dd1a2bb833546346beef0892","bugs":{"url":"https://github.com/deoxxa/duplexer2/issues"},"homepage":"https://github.com/deoxxa/duplexer2","_id":"@floatdrop/duplexer2@0.1.4","_shasum":"880d6e26aad2ac57999ad31ba5289019388f94df","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.0","_npmUser":{"name":"floatdrop","email":"floatdrop@gmail.com"},"dist":{"shasum":"880d6e26aad2ac57999ad31ba5289019388f94df","size":2799,"noattachment":false,"key":"/@floatdrop/duplexer2/-/@floatdrop/duplexer2-0.1.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/@floatdrop/duplexer2/download/@floatdrop/duplexer2-0.1.4.tgz"},"maintainers":[{"name":"floatdrop","email":"floatdrop@gmail.com"}],"directories":{},"publish_time":1449391951470,"_cnpm_publish_time":1449391951470,"_hasShrinkwrap":false}},"readme":"# duplexer2 [![Build Status](https://travis-ci.org/deoxxa/duplexer2.svg?branch=master)](https://travis-ci.org/deoxxa/duplexer2) [![Coverage Status](https://coveralls.io/repos/deoxxa/duplexer2/badge.svg?branch=master&service=github)](https://coveralls.io/github/deoxxa/duplexer2?branch=master)\n\nLike [duplexer](https://github.com/Raynos/duplexer) but using Streams3\n\n```javascript\nvar stream = require(\"stream\");\n\nvar duplexer2 = require(\"duplexer2\");\n\nvar writable = new stream.Writable({objectMode: true}),\n    readable = new stream.Readable({objectMode: true});\n\nwritable._write = function _write(input, encoding, done) {\n  if (readable.push(input)) {\n    return done();\n  } else {\n    readable.once(\"drain\", done);\n  }\n};\n\nreadable._read = function _read(n) {\n  // no-op\n};\n\n// simulate the readable thing closing after a bit\nwritable.once(\"finish\", function() {\n  setTimeout(function() {\n    readable.push(null);\n  }, 500);\n});\n\nvar duplex = duplexer2(writable, readable);\n\nduplex.on(\"data\", function(e) {\n  console.log(\"got data\", JSON.stringify(e));\n});\n\nduplex.on(\"finish\", function() {\n  console.log(\"got finish event\");\n});\n\nduplex.on(\"end\", function() {\n  console.log(\"got end event\");\n});\n\nduplex.write(\"oh, hi there\", function() {\n  console.log(\"finished writing\");\n});\n\nduplex.end(function() {\n  console.log(\"finished ending\");\n});\n```\n\n```\ngot data \"oh, hi there\"\nfinished writing\ngot finish event\nfinished ending\ngot end event\n```\n\n## Overview\n\nThis is a reimplementation of [duplexer](https://www.npmjs.com/package/duplexer) using the\nStreams3 API which is standard in Node as of v4. Everything largely\nworks the same.\n\n\n\n## Installation\n\n[Available via `npm`](https://docs.npmjs.com/cli/install):\n\n```\n$ npm i duplexer2\n```\n\n## API\n\n### duplexer2\n\nCreates a new `DuplexWrapper` object, which is the actual class that implements\nmost of the fun stuff. All that fun stuff is hidden. DON'T LOOK.\n\n```javascript\nduplexer2([options], writable, readable)\n```\n\n```javascript\nconst duplex = duplexer2(new stream.Writable(), new stream.Readable());\n```\n\nArguments\n\n* __options__ - an object specifying the regular `stream.Duplex` options, as\n  well as the properties described below.\n* __writable__ - a writable stream\n* __readable__ - a readable stream\n\nOptions\n\n* __bubbleErrors__ - a boolean value that specifies whether to bubble errors\n  from the underlying readable/writable streams. Default is `true`.\n\n\n## License\n\n3-clause BSD. [A copy](./LICENSE) is included with the source.\n\n## Contact\n\n* GitHub ([deoxxa](http://github.com/deoxxa))\n* Twitter ([@deoxxa](http://twitter.com/deoxxa))\n* Email ([deoxxa@fknsrs.biz](mailto:deoxxa@fknsrs.biz))\n","_attachments":{},"homepage":"https://github.com/deoxxa/duplexer2","bugs":{"url":"https://github.com/deoxxa/duplexer2/issues"},"license":"BSD-3-Clause"}