{"dist":{"shasum":"0e205508a0d0d6d334607842f7c4769dbfbf16e8","tarball":"https://registry.npmjs.org/emit-stream/-/emit-stream-0.1.2.tgz","integrity":"sha512-6p7OdzHlmvsfbDkoLj/b3sh+7wnt3gkJ/FUxShhXcc+xGKqBWLnxAM5T3ktTK865g4nBXKqFHlar5bfmob+MLw==","signatures":[{"sig":"MEUCIFw6U098s2Qqy10tTbVyS3UNzwAMDPoHTO2tD9dD1GSVAiEA+3ZoR1fBGfiOrB4L2Cb1OZNseL65Xwg6zwN7QT3yg/8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","name":"emit-stream","_from":".","author":{"url":"http://substack.net","name":"James Halliday","email":"mail@substack.net"},"readme":"# emit-stream\n\nturn event emitters into streams and streams into event emitters\n\n[![build status](https://secure.travis-ci.org/substack/emit-stream.png)](http://travis-ci.org/substack/emit-stream)\n\n![emit stream explained](http://substack.net/images/emit_stream.gif)\n\n# example\n\nwrite a server that streams an event emitter's events to clients:\n\n``` js\nvar emitStream = require('emit-stream');\nvar JSONStream = require('JSONStream');\nvar net = require('net');\n\nvar server = (function () {\n    var ev = createEmitter();\n    \n    return net.createServer(function (stream) {\n        emitStream(ev)\n            .pipe(JSONStream.stringify())\n            .pipe(stream)\n        ;\n    });\n})();\nserver.listen(5555);\n\nvar EventEmitter = require('events').EventEmitter;\n\nfunction createEmitter () {\n    var ev = new EventEmitter;\n    setInterval(function () {\n        ev.emit('ping', Date.now());\n    }, 2000);\n    \n    var x = 0;\n    setInterval(function () {\n        ev.emit('x', x ++);\n    }, 500);\n    \n    return ev;\n}\n```\n\nthen re-constitute the event-emitters on the client:\n\n``` js\nvar emitStream = require('emit-stream');\nvar net = require('net');\n\nvar stream = net.connect(5555)\n    .pipe(JSONStream.parse([true]))\n;\nvar ev = emitStream(stream);\n\nev.on('ping', function (t) {\n    console.log('# ping: ' + t);\n});\n\nev.on('x', function (x) {\n    console.log('x = ' + x);\n});\n```\n\n***\n\n```\n$ node example/emit.js \nx = 0\nx = 1\nx = 2\nx = 3\n# ping: 1346116850523\nx = 4\nx = 5\n^C\n```\n\n# methods\n\n``` js\nvar emitStream = require('emit-stream')\n```\n\n## emitStream(x)\n\nIf `x` is a stream, returns an event emitter from `emit.toStream(x)`.\n\nOtherwise returns a stream from `emit.fromStream(x)`.\n\n## emitStream.toStream(emitter)\n\nReturn a stream from the EventEmitter `emitter`.\n\nThe `'data'` emitted by this stream will be array data.\nSerialization is up to you. I recommend\n[JSONStream](http://github.com/dominictarr/JSONStream)\nfor most purposes.\n\n## emitStream.fromStream(stream)\n\nReturn an EventEmitter from `stream`.\n\nThe `'data'` written to this stream should be an array, like\n[JSONStream](http://github.com/dominictarr/JSONStream) creates.\n\n# install\n\nWith [npm](http://npmjs.org) do:\n\n```\nnpm install emit-stream\n```\n\n# license\n\nMIT\n","license":"MIT","scripts":{"test":"tap test/*.js"},"_npmUser":{"name":"substack","email":"mail@substack.net"},"homepage":"https://github.com/substack/emit-stream","keywords":["emit","event","emitter","EventEmitter","stream"],"repository":{"url":"git://github.com/substack/emit-stream.git","type":"git"},"_npmVersion":"1.2.2","description":"turn event emitters into streams and streams into event emitters","directories":{"test":"test","example":"example"},"maintainers":[{"name":"substack","email":"mail@substack.net"}],"dependencies":{"through":"~2.3.4"},"readmeFilename":"readme.markdown","devDependencies":{"tap":"~0.4.2","JSONStream":"~0.6.4"},"_id":"emit-stream@0.1.2","version":"0.1.2"}