{"_id":"stream-to-iterator","_rev":"218687","name":"stream-to-iterator","description":"Convert a node.js stream into an iterator.","dist-tags":{"latest":"3.0.3"},"maintainers":[{"name":"seangenabe","email":"seangenabe@outlook.com"}],"time":{"modified":"2021-06-03T15:38:30.000Z","created":"2017-01-04T17:59:45.009Z","3.0.3":"2020-01-17T05:45:50.948Z","3.0.2":"2020-01-17T05:44:56.924Z","3.0.2-0":"2018-10-15T21:25:20.182Z","3.0.1":"2018-02-13T16:32:46.430Z","3.0.0":"2018-02-08T08:55:08.576Z","2.0.0":"2017-04-27T15:26:07.930Z","1.0.0":"2017-01-04T17:59:45.009Z"},"users":{"seangenabe":true},"author":{"name":"Sean Genabe","email":"seangenabe@outlook.com"},"repository":{"type":"git","url":"git+https://github.com/seangenabe/stream-to-iterator.git"},"versions":{"3.0.3":{"name":"stream-to-iterator","version":"3.0.3","description":"Convert a node.js stream into an iterator.","keywords":["iterator","stream","readable","adapter","es2015","es6","async","promise"],"homepage":"https://github.com/seangenabe/stream-to-iterator#readme","bugs":{"url":"https://github.com/seangenabe/stream-to-iterator/issues"},"repository":{"type":"git","url":"git+https://github.com/seangenabe/stream-to-iterator.git"},"license":"MIT","author":{"name":"Sean Genabe","email":"seangenabe@outlook.com"},"main":"lib/index.js","scripts":{"build":"tsc --project .","lint":"eslint .","test":"npm run build && node --harmony_async_iteration ./test/index.js","prepublishOnly":"npm run build"},"ava":{"babel":false,"compileEnhancements":false,"files":["test/**/*.js"],"sources":["lib/**/*.js"],"timeout":"10s"},"dependencies":{"p-defer":"^3.0.0","pump":"^3.0.0"},"devDependencies":{"@types/node":"^13.1.7","@types/pump":"^1.1.0","into-stream":"^5.1.1","t0":"^1.0.0","typescript":"^3.7.5"},"engines":{"node":">=8.9 <10"},"gitHead":"90c26d2314d8a473801f6c3a56528c0b77ca5a55","_id":"stream-to-iterator@3.0.3","_nodeVersion":"10.17.0","_npmVersion":"6.13.4","dist":{"shasum":"1cd7350675ccb2112de2a0f1f70f0656fe6bc356","size":7228,"noattachment":false,"key":"/stream-to-iterator/-/stream-to-iterator-3.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-to-iterator/download/stream-to-iterator-3.0.3.tgz"},"maintainers":[{"name":"seangenabe","email":"seangenabe@outlook.com"}],"_npmUser":{"name":"seangenabe","email":"seanmarviolivergenabe@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-to-iterator_3.0.3_1579239950828_0.5008066285255985"},"_hasShrinkwrap":false,"publish_time":1579239950948,"_cnpm_publish_time":1579239950948},"3.0.2":{"name":"stream-to-iterator","version":"3.0.2","description":"Convert a node.js stream into an iterator.","keywords":["iterator","stream","readable","adapter","es2015","es6","async","promise"],"homepage":"https://github.com/seangenabe/stream-to-iterator#readme","bugs":{"url":"https://github.com/seangenabe/stream-to-iterator/issues"},"repository":{"type":"git","url":"git+https://github.com/seangenabe/stream-to-iterator.git"},"license":"MIT","author":{"name":"Sean Genabe","email":"seangenabe@outlook.com"},"main":"lib/index.js","scripts":{"build":"tsc --project .","lint":"eslint .","test":"npm run build && node --harmony_async_iteration ./test/index.js"},"ava":{"babel":false,"compileEnhancements":false,"files":["test/**/*.js"],"sources":["lib/**/*.js"],"timeout":"10s"},"dependencies":{"p-defer":"^3.0.0","pump":"^3.0.0"},"devDependencies":{"@types/node":"^13.1.7","@types/pump":"^1.1.0","into-stream":"^5.1.1","t0":"^1.0.0","typescript":"^3.7.5"},"engines":{"node":">=8.9 <10"},"gitHead":"c0fa234f28cbb342b65ffdf7e4fa573689e09741","_id":"stream-to-iterator@3.0.2","_nodeVersion":"10.17.0","_npmVersion":"6.13.4","dist":{"shasum":"4d6a2049d37dce4f2c74f187d6eeb263b4283394","size":7239,"noattachment":false,"key":"/stream-to-iterator/-/stream-to-iterator-3.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-to-iterator/download/stream-to-iterator-3.0.2.tgz"},"maintainers":[{"name":"seangenabe","email":"seangenabe@outlook.com"}],"_npmUser":{"name":"seangenabe","email":"seanmarviolivergenabe@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-to-iterator_3.0.2_1579239896773_0.5263466215992003"},"_hasShrinkwrap":false,"publish_time":1579239896924,"_cnpm_publish_time":1579239896924},"3.0.2-0":{"name":"stream-to-iterator","version":"3.0.2-0","description":"Convert a node.js stream into an iterator.","main":"lib/index.js","scripts":{"build":"tsc --project .","test":"npm run build && node --harmony_async_iteration node_modules/ava/cli.js","lint":"eslint ."},"repository":{"type":"git","url":"git+https://github.com/seangenabe/stream-to-iterator.git"},"keywords":["iterator","stream","readable","adapter","es2015","es6","async","promise"],"author":{"name":"Sean Genabe","email":"seangenabe@outlook.com"},"license":"MIT","bugs":{"url":"https://github.com/seangenabe/stream-to-iterator/issues"},"homepage":"https://github.com/seangenabe/stream-to-iterator#readme","engines":{"node":">=8.9 <10"},"dependencies":{"p-defer":"1.0.0","pump":"^3.0.0"},"devDependencies":{"@types/node":"^9.6.35","ava":"^1.0.0-beta.1","into-stream":"^3.1.0","typescript":"^2.9.2"},"ava":{"files":["test/**/*.js"],"sources":["lib/**/*.js"],"timeout":"10s","babel":false,"compileEnhancements":false},"gitHead":"1027f1d31f5bc17f43a8cb4dc7ca17d6ecf3b5d6","_id":"stream-to-iterator@3.0.2-0","_npmVersion":"6.1.0","_nodeVersion":"10.10.0","_npmUser":{"name":"seangenabe","email":"seanmarviolivergenabe@gmail.com"},"dist":{"shasum":"be73a904a5bffaf023af980ade0a1b7b593bdf19","size":7286,"noattachment":false,"key":"/stream-to-iterator/-/stream-to-iterator-3.0.2-0.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-to-iterator/download/stream-to-iterator-3.0.2-0.tgz"},"maintainers":[{"name":"seangenabe","email":"seangenabe@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-to-iterator_3.0.2-0_1539638720029_0.12126787236761305"},"_hasShrinkwrap":false,"publish_time":1539638720182,"_cnpm_publish_time":1539638720182},"3.0.1":{"name":"stream-to-iterator","version":"3.0.1","description":"Convert a node.js stream into an iterator.","main":"lib/index.js","scripts":{"build":"tsc --project .","test":"npm run build && node --harmony_async_iteration node_modules/ava/cli.js","lint":"eslint ."},"repository":{"type":"git","url":"git+https://github.com/seangenabe/stream-to-iterator.git"},"keywords":["iterator","stream","readable","adapter","es2015","es6","async","promise"],"author":{"name":"Sean Genabe","email":"seangenabe@outlook.com"},"license":"MIT","bugs":{"url":"https://github.com/seangenabe/stream-to-iterator/issues"},"homepage":"https://github.com/seangenabe/stream-to-iterator#readme","engines":{"node":">=8.9"},"dependencies":{"p-defer":"1.0.0","pump":"^3.0.0"},"devDependencies":{"@types/node":"^9.4.1","ava":"^1.0.0-beta.1","into-stream":"^3.1.0","typescript":"^2.7.1"},"ava":{"files":["test/**/*.js"],"sources":["lib/**/*.js"],"timeout":"10s","babel":false,"compileEnhancements":false},"gitHead":"e3ed1a1d7445e29c27c717df412dc3f39774c816","_id":"stream-to-iterator@3.0.1","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"seangenabe","email":"seangenabe@outlook.com"},"dist":{"shasum":"3160c7b4a85316b970d50654b321b2a311b0d6ac","size":7293,"noattachment":false,"key":"/stream-to-iterator/-/stream-to-iterator-3.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-to-iterator/download/stream-to-iterator-3.0.1.tgz"},"maintainers":[{"name":"seangenabe","email":"seangenabe@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-to-iterator_3.0.1_1518539566238_0.7631939929350984"},"_hasShrinkwrap":false,"publish_time":1518539566430,"_cnpm_publish_time":1518539566430,"deprecated":"Use native Readable async iterator support instead."},"3.0.0":{"name":"stream-to-iterator","version":"3.0.0","description":"Convert a node.js stream into an iterator.","main":"lib/index.js","scripts":{"build":"tsc --project .","test":"npm run build && node --harmony_async_iteration node_modules/ava/cli.js","lint":"eslint ."},"repository":{"type":"git","url":"git+https://github.com/seangenabe/stream-to-iterator.git"},"keywords":["iterator","stream","readable","adapter","es2015","es6","async","promise"],"author":{"name":"Sean Genabe","email":"seangenabe@outlook.com"},"license":"MIT","bugs":{"url":"https://github.com/seangenabe/stream-to-iterator/issues"},"homepage":"https://github.com/seangenabe/stream-to-iterator#readme","engines":{"node":">=8.9"},"dependencies":{"p-defer":"1.0.0","pump":"^3.0.0"},"devDependencies":{"@types/node":"^9.4.1","ava":"^1.0.0-beta.1","into-stream":"^3.1.0","typescript":"^2.7.1"},"ava":{"files":["test/**/*.js"],"sources":["lib/**/*.js"],"timeout":"10s","babel":false,"compileEnhancements":false},"gitHead":"299f25988b88bdb51b523b45feb698e08c605106","_id":"stream-to-iterator@3.0.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"seangenabe","email":"seangenabe@outlook.com"},"dist":{"shasum":"99402f5f33818c6b85a28f02c5d05b01e7c06061","size":233805,"noattachment":false,"key":"/stream-to-iterator/-/stream-to-iterator-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-to-iterator/download/stream-to-iterator-3.0.0.tgz"},"maintainers":[{"name":"seangenabe","email":"seangenabe@outlook.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stream-to-iterator_3.0.0_1518080108506_0.45754803333739913"},"_hasShrinkwrap":false,"publish_time":1518080108576,"_cnpm_publish_time":1518080108576,"deprecated":"Use native Readable async iterator support instead."},"2.0.0":{"name":"stream-to-iterator","version":"2.0.0","description":"Convert a node.js stream into an iterator.","main":"dist/index.js","scripts":{"build":"babel lib --out-dir dist","pretest":"npm run build","test":"ava","lint":"eslint ."},"repository":{"type":"git","url":"git+https://github.com/seangenabe/stream-to-iterator.git"},"keywords":["iterator","stream","readable","adapter","es2015","es6","async","promise"],"author":{"name":"Sean Genabe","email":"seangenabe@outlook.com"},"license":"MIT","bugs":{"url":"https://github.com/seangenabe/stream-to-iterator/issues"},"homepage":"https://github.com/seangenabe/stream-to-iterator#readme","engines":{"node":">=6.5"},"dependencies":{"nodeify":"^1.0.0"},"devDependencies":{"ava":"^0.19.0","babel-cli":"^6.18.0","babel-plugin-transform-async-to-generator":"^6.16.0","delay":"^2.0.0","eslint":"^3.12.2","eslint-config-mirage":"^4.0.0","p-map-series":"^1.0.0"},"ava":{"files":["test/**/*.js"],"source":["dist/**/*.js"],"timeout":"10s"},"gitHead":"2feb8499cc4325d6c6333f215d4902b241739e01","_id":"stream-to-iterator@2.0.0","_shasum":"fb83c3ed53c27c499617ab69b215f9521b870eed","_from":".","_npmVersion":"4.3.0","_nodeVersion":"7.9.0","_npmUser":{"name":"seangenabe","email":"seangenabe@outlook.com"},"dist":{"shasum":"fb83c3ed53c27c499617ab69b215f9521b870eed","size":5550,"noattachment":false,"key":"/stream-to-iterator/-/stream-to-iterator-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-to-iterator/download/stream-to-iterator-2.0.0.tgz"},"maintainers":[{"name":"seangenabe","email":"seangenabe@outlook.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/stream-to-iterator-2.0.0.tgz_1493306764125_0.46159809548407793"},"directories":{},"publish_time":1493306767930,"_hasShrinkwrap":false,"_cnpm_publish_time":1493306767930,"deprecated":"Use native Readable async iterator support instead."},"1.0.0":{"name":"stream-to-iterator","version":"1.0.0","description":"Convert a node.js stream into an iterator.","main":"dist/index.js","scripts":{"build":"babel lib --out-dir dist","pretest":"npm run build","test":"ava","lint":"eslint ."},"repository":{"type":"git","url":"git+https://github.com/seangenabe/stream-to-iterator.git"},"keywords":["iterator","stream","readable","adapter","es2015","es6","async","promise"],"author":{"name":"Sean Genabe","email":"seangenabe@outlook.com"},"license":"MIT","bugs":{"url":"https://github.com/seangenabe/stream-to-iterator/issues"},"homepage":"https://github.com/seangenabe/stream-to-iterator#readme","engines":{"node":">=6.5"},"dependencies":{"nodeify":"^1.0.0"},"devDependencies":{"ava":"^0.17.0","babel-cli":"^6.18.0","babel-plugin-transform-async-to-generator":"^6.16.0","delay":"^1.3.1","eslint":"^3.12.2","eslint-config-mirage":"^2.1.0","p-map-series":"^1.0.0"},"ava":{"files":["test/**/*.js"],"source":["dist/**/*.js"],"timeout":"10s"},"gitHead":"d80cf507107450b53011fc5ffc4f996047323db4","_id":"stream-to-iterator@1.0.0","_shasum":"39d032616285f2c719fab3e32151c96ec39f7b7c","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.2.1","_npmUser":{"name":"seangenabe","email":"seangenabe@outlook.com"},"dist":{"shasum":"39d032616285f2c719fab3e32151c96ec39f7b7c","size":5547,"noattachment":false,"key":"/stream-to-iterator/-/stream-to-iterator-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-to-iterator/download/stream-to-iterator-1.0.0.tgz"},"maintainers":[{"name":"seangenabe","email":"seangenabe@outlook.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/stream-to-iterator-1.0.0.tgz_1483552784772_0.3365493114106357"},"directories":{},"publish_time":1483552785009,"_cnpm_publish_time":1483552785009,"_hasShrinkwrap":false,"deprecated":"Use native Readable async iterator support instead."}},"readme":"# stream-to-iterator\n\nSOFT DEPRECATION: Please use native `Readable` async iteration support instead, available from node.js v10.\n\nConverts a node.js stream into an iterator.\n\n[![Build Status](https://img.shields.io/travis/seangenabe/stream-to-iterator/master.svg?style=flat-square)](https://travis-ci.org/seangenabe/stream-to-iterator)\n[![Dependency Status](https://img.shields.io/david/seangenabe/stream-to-iterator.svg?style=flat-square)](https://david-dm.org/seangenabe/stream-to-iterator)\n[![devDependency Status](https://img.shields.io/david/dev/seangenabe/stream-to-iterator.svg?style=flat-square)](https://david-dm.org/seangenabe/stream-to-iterator#info=devDependencies)\n[![node](https://img.shields.io/node/v/stream-to-iterator.svg?style=flat-square)](https://nodejs.org/en/download/)\n\n## Usage\n\nWith _for-await-of_:\n\n```javascript\n(async () => {\n  const streamToIterator = require('stream-to-iterator')\n  const intoStream = require('into-stream')\n\n  const readable = intoStream.obj([2, 3, 4])\n  const iterator = streamToIterator(readable)\n  const allValues = []\n\n  for await (let value of iterator) {\n    allValues.push(value * value)\n  }\n\n  console.log(allValues) // [ 4, 9, 16 ]\n})()\n```\n\n## API\n\n### streamToIterator(readable, opts)\n\nCreates a writable stream that is also an async iterator and pipes the readable stream to it. Chunks are drained from the source stream as objects are requested from the iterator.\n\nRequested values are fulfilled serially. Requesting a value (`AsyncIterator#next`) from the iterator without waiting for a previous request to finish will result to the resolved value being equal to the resolved value of the previous request.\n\nThe underlying writable stream defaults to object mode. This is because the object converted into (the iterator) does not really need to be in a specific object or non-object mode.\n\nFor convenience, the iterator also implements the `AsyncIterable` interface. Be careful though: this only reflects the current state of the iterator.\n\nThe iterator will rethrow any error emitted on the stream on the next iteration read from it after the error is handled.\n\nParameters:\n* `readable: Readable<T>` - A node.js-style readable stream. Streams v1-3 are supported (via node core `Readable.wrap()`).\n* `opts: Object` - Options to pass to the underlying writable stream. Default: `{ objectMode: true }`. No merging is performed.\n\nReturns: `AsyncIterator<T>` where `AsyncIterator<T>` is:\n\n```typescript\ninterface AsyncIterator<T> {\n  next(): Promise<{ done: boolean; value: T }>\n}\n```\n\n## Migrating from v2\n\nThe old mode implementing `Iterator<Promise<T>>` is _still supported_. However, there are a few breaking changes:\n* `streamToIterator` does not return a `Promise` anymore.\n* To get an instance of the iterator, call `[Symbol.iterator]()` on the return value.\n* Call `await init()` on the returned iterator to initialize it. This is the equivalent of calling the removed `Promise` interface on the original function.\n* As with the new API, calling `Iterator#next` before waiting for the promise to finish will return the same value as the previous iteration.\n\n```javascript\nconst iterator = await streamToIterator(readable).init()\nfor (let valuePromise of iterator) {\n  const value = await valuePromise\n  // do something with value\n}\n```\n\n(See also the example on the tests.)\n\nThe old consumption rules still apply:\n\n* The iteration value returned will be of type `Promise<T>`. To get the iteration value, the consumer must wait for the resolution of that promised value.\n* The consumer **must not** prematurely get the next value of the iterator (i.e. call Iterator#next()) until such time that the current promise value of the iterator is resolved.\n\nThe iterator throws if the iterator was called before the first chunk was received.\n\n## See also\n\n* [async-iter-stream](https://github.com/calvinmetcalf/async-iter-stream) - similar module\n","_attachments":{},"homepage":"https://github.com/seangenabe/stream-to-iterator#readme","bugs":{"url":"https://github.com/seangenabe/stream-to-iterator/issues"},"license":"MIT"}