{
	"name": "duplexer3",
	"versions": {
		"0.1.4": {
			"name": "duplexer3",
			"version": "0.1.4",
			"description": "Like duplexer but using streams3",
			"engine": {
				"node": ">=4"
			},
			"files": [
				"index.js"
			],
			"scripts": {
				"test": "mocha -R tap"
			},
			"repository": {
				"type": "git",
				"url": "https://github.com/floatdrop/duplexer3"
			},
			"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": "810f45fd7216a4ec4585e673ad28f05852ed05a6",
			"bugs": {
				"url": "https://github.com/floatdrop/duplexer3/issues"
			},
			"homepage": "https://github.com/floatdrop/duplexer3",
			"_id": "duplexer3@0.1.4",
			"_shasum": "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2",
			"_from": ".",
			"_npmVersion": "2.14.7",
			"_nodeVersion": "4.2.3",
			"_npmUser": {
				"name": "floatdrop",
				"email": "floatdrop@gmail.com"
			},
			"dist": {
				"shasum": "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2",
				"tarball": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz"
			},
			"maintainers": [
				{
					"name": "floatdrop",
					"email": "floatdrop@gmail.com"
				}
			],
			"directories": {},
			"contributors": []
		}
	},
	"time": {
		"modified": "2018-01-11T02:23:57.067Z",
		"created": "2016-01-11T12:09:25.153Z",
		"0.1.4": "2016-01-11T12:09:25.153Z"
	},
	"users": {},
	"dist-tags": {
		"latest": "0.1.4"
	},
	"_uplinks": {
		"npmjs": {
			"etag": "W/\"a512b4eb4c8411d5cd0275c8ad229b84\"",
			"fetched": 1602009407150
		}
	},
	"_distfiles": {
		"duplexer3-0.1.4.tgz": {
			"url": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
			"sha": "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2",
			"registry": "npmjs"
		}
	},
	"_attachments": {
		"duplexer3-0.1.4.tgz": {
			"shasum": "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
		}
	},
	"_rev": "18-55b9759ff1d33d0c",
	"_id": "duplexer3",
	"readme": "# duplexer3 [![Build Status](https://travis-ci.org/floatdrop/duplexer3.svg?branch=master)](https://travis-ci.org/floatdrop/duplexer3) [![Coverage Status](https://coveralls.io/repos/floatdrop/duplexer3/badge.svg?branch=master&service=github)](https://coveralls.io/github/floatdrop/duplexer3?branch=master)\n\nLike [duplexer2](https://github.com/deoxxa/duplexer2) but using Streams3 without readable-stream dependency\n\n```javascript\nvar stream = require(\"stream\");\n\nvar duplexer3 = require(\"duplexer3\");\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 = duplexer3(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 duplexer3\n```\n\n## API\n\n### duplexer3\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\nduplexer3([options], writable, readable)\n```\n\n```javascript\nconst duplex = duplexer3(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))"
}