{"_id":"duplexer2","_rev":"40315","name":"duplexer2","description":"Like duplexer but using streams3","dist-tags":{"latest":"0.1.4"},"maintainers":[{"name":"deoxxa","email":""},{"name":"shinnn","email":"snnskwtnb@gmail.com"},{"name":"zertosh","email":""}],"time":{"modified":"2021-06-03T10:12:04.000Z","created":"2013-09-11T13:47:45.494Z","0.1.4":"2015-11-08T08:07:39.098Z","0.1.3":"2015-11-08T04:55:22.850Z","0.1.2":"2015-10-17T19:28:53.689Z","0.1.1":"2015-10-17T03:54:58.185Z","0.1.0":"2015-09-24T18:48:52.293Z","0.0.2":"2014-04-21T01:10:11.515Z","0.0.1":"2013-09-11T13:47:45.494Z"},"users":{"ryanj":true,"alanshaw":true,"akiva":true,"simplyianm":true,"alexkval":true,"staraple":true,"plitat":true,"edin-m":true,"wenbing":true,"0x4c3p":true,"deubaka":true,"sirrah":true,"ezodude":true,"nickleefly":true,"edigi135":true,"1two3code":true},"author":{"name":"Conrad Pankoff","email":"deoxxa@fknsrs.biz","url":"http://www.fknsrs.biz/"},"repository":{"type":"git","url":"git+https://github.com/deoxxa/duplexer2.git"},"versions":{"0.1.4":{"name":"duplexer2","version":"0.1.4","description":"Like duplexer but using streams3","files":["index.js"],"scripts":{"test":"mocha -R tap"},"repository":{"type":"git","url":"git+https://github.com/deoxxa/duplexer2.git"},"keywords":["duplex","duplexer","stream","stream3","join","combine"],"author":{"name":"Conrad Pankoff","email":"deoxxa@fknsrs.biz","url":"http://www.fknsrs.biz/"},"license":"BSD-3-Clause","dependencies":{"readable-stream":"^2.0.2"},"devDependencies":{"mocha":"^2.2.5"},"gitHead":"7d008c10499de01ba85636b5f77085ced015c37a","bugs":{"url":"https://github.com/deoxxa/duplexer2/issues"},"homepage":"https://github.com/deoxxa/duplexer2#readme","_id":"duplexer2@0.1.4","_shasum":"8b12dab878c0d69e3e7891051662a32fc6bddcc1","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"zertosh","email":"zertosh@gmail.com"},"maintainers":[{"name":"deoxxa","email":""},{"name":"shinnn","email":"snnskwtnb@gmail.com"},{"name":"zertosh","email":""}],"dist":{"shasum":"8b12dab878c0d69e3e7891051662a32fc6bddcc1","size":2812,"noattachment":false,"key":"/duplexer2/-/duplexer2-0.1.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/duplexer2/download/duplexer2-0.1.4.tgz"},"directories":{},"publish_time":1446970059098,"_cnpm_publish_time":1446970059098,"_hasShrinkwrap":false},"0.1.3":{"name":"duplexer2","version":"0.1.3","description":"Like duplexer but using streams3","files":["index.js"],"scripts":{"test":"mocha -R tap"},"repository":{"type":"git","url":"git+https://github.com/deoxxa/duplexer2.git"},"keywords":["duplex","duplexer","stream","stream3","join","combine"],"author":{"name":"Conrad Pankoff","email":"deoxxa@fknsrs.biz","url":"http://www.fknsrs.biz/"},"license":"BSD-3-Clause","dependencies":{"readable-stream":"^2.0.2"},"devDependencies":{"mocha":"^2.2.5"},"gitHead":"c0060b1505c4d841ce915e28286011c3fa40864c","bugs":{"url":"https://github.com/deoxxa/duplexer2/issues"},"homepage":"https://github.com/deoxxa/duplexer2#readme","_id":"duplexer2@0.1.3","_shasum":"89d8b1492f32009869e093ab7e253d6138302ada","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"zertosh","email":"zertosh@gmail.com"},"maintainers":[{"name":"deoxxa","email":""},{"name":"shinnn","email":"snnskwtnb@gmail.com"},{"name":"zertosh","email":""}],"dist":{"shasum":"89d8b1492f32009869e093ab7e253d6138302ada","size":2802,"noattachment":false,"key":"/duplexer2/-/duplexer2-0.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/duplexer2/download/duplexer2-0.1.3.tgz"},"directories":{},"publish_time":1446958522850,"_cnpm_publish_time":1446958522850,"_hasShrinkwrap":false},"0.1.2":{"name":"duplexer2","version":"0.1.2","description":"Like duplexer but using streams3","files":["index.js"],"scripts":{"pretest":"eslint --config @shinnn/node-legacy --rule 'quotes: [2, double]' example.js --rule 'no-underscore-dangle: 0' index.js test.js","test":"node --strong_mode --harmony_destructuring --harmony_rest_parameters --harmony_spreadcalls --throw-deprecation --trace-sync-io --track-heap-objects test.js | tap-spec","coverage":"node --strong_mode --harmony_destructuring --harmony_rest_parameters --harmony_spreadcalls node_modules/.bin/istanbul cover test.js"},"repository":{"type":"git","url":"git+https://github.com/deoxxa/duplexer2.git"},"keywords":["duplex","duplexer","stream","stream3","join","combine"],"author":{"name":"Conrad Pankoff","email":"deoxxa@fknsrs.biz","url":"http://www.fknsrs.biz/"},"license":"BSD-3-Clause","dependencies":{"readable-stream":"^2.0.2"},"devDependencies":{"@shinnn/eslint-config-node-legacy":"^1.0.0","eslint":"^1.7.1","istanbul":"^0.3.22","object-assign":"^4.0.1","tap-spec":"^4.1.0","tape":"^4.2.1","through":"^2.3.8"},"gitHead":"a6830be86ae760bcc586e458dbf1fbdacf2e76a2","bugs":{"url":"https://github.com/deoxxa/duplexer2/issues"},"homepage":"https://github.com/deoxxa/duplexer2#readme","_id":"duplexer2@0.1.2","_shasum":"9d5743625528d33dc22010e1c03777e19f3c44dc","_from":".","_npmVersion":"3.3.8","_nodeVersion":"4.2.1","_npmUser":{"name":"shinnn","email":"snnskwtnb@gmail.com"},"maintainers":[{"name":"deoxxa","email":""},{"name":"shinnn","email":"snnskwtnb@gmail.com"},{"name":"zertosh","email":""}],"dist":{"shasum":"9d5743625528d33dc22010e1c03777e19f3c44dc","size":3144,"noattachment":false,"key":"/duplexer2/-/duplexer2-0.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/duplexer2/download/duplexer2-0.1.2.tgz"},"directories":{},"publish_time":1445110133689,"_cnpm_publish_time":1445110133689,"_hasShrinkwrap":false},"0.1.1":{"name":"duplexer2","version":"0.1.1","description":"Like duplexer but using streams3","files":["index.js"],"scripts":{"pretest":"eslint --config @shinnn/node-legacy --rule 'quotes: [2, double]' example.js --rule 'no-underscore-dangle: 0' index.js test.js","test":"node --strong_mode --harmony_destructuring --harmony_rest_parameters --harmony_spreadcalls --throw-deprecation --trace-sync-io --track-heap-objects test.js | tap-spec","coverage":"node --strong_mode --harmony_destructuring --harmony_rest_parameters --harmony_spreadcalls node_modules/.bin/istanbul cover test.js"},"repository":{"type":"git","url":"git+https://github.com/deoxxa/duplexer2.git"},"keywords":["duplex","duplexer","stream","stream3","join","combine"],"author":{"name":"Conrad Pankoff","email":"deoxxa@fknsrs.biz","url":"http://www.fknsrs.biz/"},"license":"BSD-3-Clause","dependencies":{"readable-stream":"^2.0.2"},"devDependencies":{"@shinnn/eslint-config-node-legacy":"^1.0.0","eslint":"^1.7.1","istanbul":"^0.3.22","object-assign":"^4.0.1","tap-spec":"^4.1.0","tape":"^4.2.1","through":"^2.3.8"},"gitHead":"298ce063bd8a8bdd778db04cac245f8febd03209","bugs":{"url":"https://github.com/deoxxa/duplexer2/issues"},"homepage":"https://github.com/deoxxa/duplexer2#readme","_id":"duplexer2@0.1.1","_shasum":"e75f91a7c89f34c66e8492597aeac1e948d11cdd","_from":".","_npmVersion":"3.3.8","_nodeVersion":"4.2.1","_npmUser":{"name":"shinnn","email":"snnskwtnb@gmail.com"},"maintainers":[{"name":"deoxxa","email":""},{"name":"shinnn","email":"snnskwtnb@gmail.com"},{"name":"zertosh","email":""}],"dist":{"shasum":"e75f91a7c89f34c66e8492597aeac1e948d11cdd","size":3216,"noattachment":false,"key":"/duplexer2/-/duplexer2-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/duplexer2/download/duplexer2-0.1.1.tgz"},"directories":{},"publish_time":1445054098185,"_cnpm_publish_time":1445054098185,"_hasShrinkwrap":false},"0.1.0":{"name":"duplexer2","version":"0.1.0","description":"Like duplexer but using streams3","files":["index.js"],"scripts":{"test":"node --harmony_destructuring --throw-deprecation --trace-sync-io --track-heap-objects node_modules/mocha/bin/_mocha","coverage":"node --harmony_destructuring node_modules/.bin/istanbul cover _mocha"},"repository":{"type":"git","url":"git+https://github.com/deoxxa/duplexer2.git"},"keywords":["duplex","duplexer","stream","stream3","join","combine"],"author":{"name":"Conrad Pankoff","email":"deoxxa@fknsrs.biz","url":"http://www.fknsrs.biz/"},"license":"BSD-3-Clause","dependencies":{"readable-stream":"^2.0.2"},"devDependencies":{"istanbul":"^0.3.20","mocha":"^2.2.5"},"gitHead":"af38f7b1229d53e343bc65a13c1fc780ea5c9178","bugs":{"url":"https://github.com/deoxxa/duplexer2/issues"},"homepage":"https://github.com/deoxxa/duplexer2#readme","_id":"duplexer2@0.1.0","_shasum":"90c7ad5dbfba99fce92c2dd64aaaeae2a650d91f","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"shinnn","email":"snnskwtnb@gmail.com"},"maintainers":[{"name":"deoxxa","email":""},{"name":"shinnn","email":"snnskwtnb@gmail.com"},{"name":"zertosh","email":""}],"dist":{"shasum":"90c7ad5dbfba99fce92c2dd64aaaeae2a650d91f","size":3053,"noattachment":false,"key":"/duplexer2/-/duplexer2-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/duplexer2/download/duplexer2-0.1.0.tgz"},"directories":{},"publish_time":1443120532293,"_cnpm_publish_time":1443120532293,"_hasShrinkwrap":false},"0.0.2":{"name":"duplexer2","version":"0.0.2","description":"Like duplexer (http://npm.im/duplexer) but using streams2","main":"index.js","scripts":{"test":"mocha -R tap"},"repository":{"type":"git","url":"git://github.com/deoxxa/duplexer2.git"},"keywords":["duplex","stream","join","combine"],"author":{"name":"Conrad Pankoff","email":"deoxxa@fknsrs.biz","url":"http://www.fknsrs.biz/"},"license":"BSD","bugs":{"url":"https://github.com/deoxxa/duplexer2/issues"},"devDependencies":{"chai":"~1.7.2","mocha":"~1.12.1"},"dependencies":{"readable-stream":"~1.1.9"},"homepage":"https://github.com/deoxxa/duplexer2","_id":"duplexer2@0.0.2","dist":{"shasum":"c614dcf67e2fb14995a91711e5a617e8a60a31db","size":3484,"noattachment":false,"key":"/duplexer2/-/duplexer2-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/duplexer2/download/duplexer2-0.0.2.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"deoxxa","email":"deoxxa@fknsrs.biz"},"maintainers":[{"name":"deoxxa","email":""},{"name":"shinnn","email":"snnskwtnb@gmail.com"},{"name":"zertosh","email":""}],"directories":{},"publish_time":1398042611515,"_cnpm_publish_time":1398042611515,"_hasShrinkwrap":false},"0.0.1":{"name":"duplexer2","version":"0.0.1","description":"Like duplexer (http://npm.im/duplexer) but using streams2","main":"index.js","scripts":{"test":"mocha -R tap"},"repository":{"type":"git","url":"git://github.com/deoxxa/duplexer2.git"},"keywords":["duplex","stream","join","combine"],"author":{"name":"Conrad Pankoff","email":"deoxxa@fknsrs.biz","url":"http://www.fknsrs.biz/"},"license":"BSD","bugs":{"url":"https://github.com/deoxxa/duplexer2/issues"},"devDependencies":{"chai":"~1.7.2","mocha":"~1.12.1"},"readmeFilename":"README.md","_id":"duplexer2@0.0.1","dist":{"shasum":"f8a276687b0b122a466e2bbc8f6a22043cb15d26","size":3467,"noattachment":false,"key":"/duplexer2/-/duplexer2-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/duplexer2/download/duplexer2-0.0.1.tgz"},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"deoxxa","email":"deoxxa@fknsrs.biz"},"maintainers":[{"name":"deoxxa","email":""},{"name":"shinnn","email":"snnskwtnb@gmail.com"},{"name":"zertosh","email":""}],"directories":{},"publish_time":1378907265494,"_cnpm_publish_time":1378907265494,"_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#readme","bugs":{"url":"https://github.com/deoxxa/duplexer2/issues"},"license":"BSD-3-Clause"}