{"_id":"async-iterator-to-pull-stream","_rev":"4573568","name":"async-iterator-to-pull-stream","description":"Convert a (async) iterator to a pull stream","dist-tags":{"latest":"1.3.0"},"maintainers":[{"name":"alanshaw","email":""}],"time":{"modified":"2026-04-10T15:35:17.000Z","created":"2018-09-08T12:23:38.093Z","1.3.0":"2019-03-30T23:34:12.276Z","1.2.1":"2019-02-18T16:15:04.476Z","1.2.0":"2019-02-18T16:03:29.992Z","1.1.0":"2018-09-23T20:07:33.954Z","1.0.1":"2018-09-14T15:20:30.877Z","1.0.0":"2018-09-08T12:23:38.093Z"},"users":{},"author":{"name":"Alan Shaw"},"repository":{"type":"git","url":"git+https://github.com/alanshaw/async-iterator-to-pull-stream.git"},"versions":{"1.3.0":{"name":"async-iterator-to-pull-stream","version":"1.3.0","description":"Convert a (async) iterator to a pull stream","main":"index.js","scripts":{"test":"nyc --reporter=lcov --reporter=text ava --verbose"},"keywords":["pull","stream","async","iterator","await"],"author":{"name":"Alan Shaw"},"license":"MIT","devDependencies":{"ava":"^1.4.1","nyc":"^13.3.0","pull-stream":"^3.6.9"},"ava":{"babel":false,"compileEnhancements":false},"dependencies":{"get-iterator":"^1.0.2","pull-stream-to-async-iterator":"^1.0.1"},"repository":{"type":"git","url":"git+https://github.com/alanshaw/async-iterator-to-pull-stream.git"},"bugs":{"url":"https://github.com/alanshaw/async-iterator-to-pull-stream/issues"},"homepage":"https://github.com/alanshaw/async-iterator-to-pull-stream#readme","gitHead":"f966f3c80ee817358ad3b9055476341e46a03180","_id":"async-iterator-to-pull-stream@1.3.0","_nodeVersion":"11.11.0","_npmVersion":"6.7.0","_npmUser":{"name":"alanshaw","email":"alan138@gmail.com"},"dist":{"shasum":"3a6b9f3cceadff972ca20eb480e3cb43f8789732","size":3161,"noattachment":false,"key":"/async-iterator-to-pull-stream/-/async-iterator-to-pull-stream-1.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/async-iterator-to-pull-stream/download/async-iterator-to-pull-stream-1.3.0.tgz"},"maintainers":[{"name":"alanshaw","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-iterator-to-pull-stream_1.3.0_1553988852141_0.5468662066580334"},"_hasShrinkwrap":false,"publish_time":1553988852276,"_cnpm_publish_time":1553988852276,"_cnpmcore_publish_time":"2021-12-16T11:26:42.570Z"},"1.2.1":{"name":"async-iterator-to-pull-stream","version":"1.2.1","description":"Convert a (async) iterator to a pull stream","main":"index.js","scripts":{"test":"nyc --reporter=lcov --reporter=text ava --verbose"},"keywords":["pull","stream","async","iterator","await"],"author":{"name":"Alan Shaw"},"license":"MIT","devDependencies":{"ava":"^1.0.0-beta.8","nyc":"^13.0.1","pull-stream":"^3.6.9"},"ava":{"babel":false,"compileEnhancements":false},"dependencies":{"get-iterator":"^1.0.1","pull-stream-to-async-iterator":"^1.0.1"},"repository":{"type":"git","url":"git+https://github.com/alanshaw/async-iterator-to-pull-stream.git"},"bugs":{"url":"https://github.com/alanshaw/async-iterator-to-pull-stream/issues"},"homepage":"https://github.com/alanshaw/async-iterator-to-pull-stream#readme","gitHead":"92d976e419e618099cf161b597285b6885f69a78","_id":"async-iterator-to-pull-stream@1.2.1","_npmVersion":"6.5.0","_nodeVersion":"11.9.0","_npmUser":{"name":"alanshaw","email":"alan138@gmail.com"},"dist":{"shasum":"d70c0bef39ba5bdfdbc3c19ba5ab612a62b451aa","size":2717,"noattachment":false,"key":"/async-iterator-to-pull-stream/-/async-iterator-to-pull-stream-1.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/async-iterator-to-pull-stream/download/async-iterator-to-pull-stream-1.2.1.tgz"},"maintainers":[{"name":"alanshaw","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-iterator-to-pull-stream_1.2.1_1550506504365_0.29840311041694023"},"_hasShrinkwrap":false,"publish_time":1550506504476,"_cnpm_publish_time":1550506504476,"_cnpmcore_publish_time":"2021-12-16T11:26:43.078Z"},"1.2.0":{"name":"async-iterator-to-pull-stream","version":"1.2.0","description":"Convert a (async) iterator to a pull stream","main":"index.js","scripts":{"test":"nyc --reporter=lcov --reporter=text ava --verbose"},"keywords":["pull","stream","async","iterator","await"],"author":{"name":"Alan Shaw"},"license":"MIT","devDependencies":{"ava":"^1.0.0-beta.8","nyc":"^13.0.1","pull-stream":"^3.6.9"},"ava":{"babel":false,"compileEnhancements":false},"dependencies":{"get-iterator":"^1.0.1","pull-stream-to-async-iterator":"^1.0.1"},"gitHead":"b2d9a91f663271b61d720c9b797b65da95ee58e4","_id":"async-iterator-to-pull-stream@1.2.0","_npmVersion":"6.5.0","_nodeVersion":"11.9.0","_npmUser":{"name":"alanshaw","email":"alan138@gmail.com"},"dist":{"shasum":"8f2734fae4fd8fbdb01bf5ccecc588a4552c4b35","size":2659,"noattachment":false,"key":"/async-iterator-to-pull-stream/-/async-iterator-to-pull-stream-1.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/async-iterator-to-pull-stream/download/async-iterator-to-pull-stream-1.2.0.tgz"},"maintainers":[{"name":"alanshaw","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-iterator-to-pull-stream_1.2.0_1550505809792_0.4790809187306271"},"_hasShrinkwrap":false,"publish_time":1550505809992,"_cnpm_publish_time":1550505809992,"_cnpmcore_publish_time":"2021-12-16T11:26:43.288Z"},"1.1.0":{"name":"async-iterator-to-pull-stream","version":"1.1.0","description":"Convert a (async) iterator to a pull stream","main":"index.js","scripts":{"test":"nyc --reporter=lcov --reporter=text ava"},"keywords":["pull","stream","async","iterator","await"],"author":{"name":"Alan Shaw"},"license":"MIT","devDependencies":{"ava":"^1.0.0-beta.8","nyc":"^13.0.1","pull-stream":"^3.6.9"},"ava":{"babel":false,"compileEnhancements":false},"gitHead":"1ef461022a67217d12cae71101cf9770eb79ce26","_id":"async-iterator-to-pull-stream@1.1.0","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"alanshaw","email":"alan138@gmail.com"},"maintainers":[{"name":"alanshaw","email":""}],"dist":{"shasum":"26dcf5dcaa927d9833f3566e83ca603a0702f7b3","size":2147,"noattachment":false,"key":"/async-iterator-to-pull-stream/-/async-iterator-to-pull-stream-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/async-iterator-to-pull-stream/download/async-iterator-to-pull-stream-1.1.0.tgz"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-iterator-to-pull-stream_1.1.0_1537733253790_0.22183500019752822"},"_hasShrinkwrap":false,"publish_time":1537733253954,"_cnpm_publish_time":1537733253954,"_cnpmcore_publish_time":"2021-12-16T11:26:43.524Z"},"1.0.1":{"name":"async-iterator-to-pull-stream","version":"1.0.1","description":"Convert a (async) iterator to a pull stream","main":"index.js","scripts":{"test":"nyc --reporter=lcov --reporter=text ava"},"keywords":["pull","stream","async","iterator","await"],"author":{"name":"Alan Shaw"},"license":"MIT","devDependencies":{"ava":"^1.0.0-beta.8","nyc":"^13.0.1","pull-stream":"^3.6.9"},"ava":{"babel":false,"compileEnhancements":false},"gitHead":"18498b3a4206f3af51352e51fd3a64a592347d37","_id":"async-iterator-to-pull-stream@1.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"alanshaw","email":"alan138@gmail.com"},"dist":{"shasum":"17471cb856ad15c9386ba78e930bbd2c4c0c5c26","size":2053,"noattachment":false,"key":"/async-iterator-to-pull-stream/-/async-iterator-to-pull-stream-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/async-iterator-to-pull-stream/download/async-iterator-to-pull-stream-1.0.1.tgz"},"maintainers":[{"name":"alanshaw","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-iterator-to-pull-stream_1.0.1_1536938430723_0.8983956007422926"},"_hasShrinkwrap":false,"publish_time":1536938430877,"_cnpm_publish_time":1536938430877,"_cnpmcore_publish_time":"2021-12-16T11:26:43.724Z"},"1.0.0":{"name":"async-iterator-to-pull-stream","version":"1.0.0","description":"Convert a pull stream to an (async) iterator","main":"index.js","scripts":{"test":"nyc --reporter=lcov --reporter=text ava"},"keywords":["pull","stream","async","iterator","await"],"author":{"name":"Alan Shaw"},"license":"MIT","devDependencies":{"ava":"^1.0.0-beta.8","nyc":"^13.0.1","pull-stream":"^3.6.9"},"ava":{"babel":false,"compileEnhancements":false},"gitHead":"cf29a911375c797af37440892ce8c1a32d9cfbf4","_id":"async-iterator-to-pull-stream@1.0.0","_npmVersion":"6.2.0","_nodeVersion":"10.9.0","_npmUser":{"name":"alanshaw","email":"alan138@gmail.com"},"dist":{"shasum":"7e572880901e667f55c9fb61bd9de40a4c682c13","size":2058,"noattachment":false,"key":"/async-iterator-to-pull-stream/-/async-iterator-to-pull-stream-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/async-iterator-to-pull-stream/download/async-iterator-to-pull-stream-1.0.0.tgz"},"maintainers":[{"name":"alanshaw","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-iterator-to-pull-stream_1.0.0_1536409417930_0.8384003749477598"},"_hasShrinkwrap":false,"publish_time":1536409418093,"_cnpm_publish_time":1536409418093,"_cnpmcore_publish_time":"2021-12-16T11:26:43.956Z"}},"readme":"# async-iterator-to-pull-stream\n\n[![Build Status](https://travis-ci.org/alanshaw/async-iterator-to-pull-stream.svg?branch=master)](https://travis-ci.org/alanshaw/async-iterator-to-pull-stream) [![dependencies Status](https://david-dm.org/alanshaw/async-iterator-to-pull-stream/status.svg)](https://david-dm.org/alanshaw/async-iterator-to-pull-stream)\n\n> Convert a (async) iterator to a pull stream\n\n## Install\n\n```sh\nnpm install async-iterator-to-pull-stream\n```\n\n## Usage\n\n```js\nconst pull = require('pull-stream')\nconst toPull = require('async-iterator-to-pull-stream')\n\nconst source = (async function * () {\n  const sourceValues = [1, 2, 3, 4, 5]\n  for (let i = 0; i < sourceValues.length; i++) {\n    yield await new Promise(resolve => setTimeout(() => resolve(sourceValues[i])))\n  }\n})()\n\npull(\n  toPull.source(source),\n  pull.collect((err, values) => {\n    console.log(values) // 1, 2, 3, 4, 5\n  })\n)\n```\n\n## API\n\n### `toPull.source(iterator)`\n\nConvert an async `iterator` into a _source_ pull stream. Returns a pull stream that can be used as a source in a pull pipeline.\n\n### `toPull.transform(transform)`\n\nA `transform` is a function that takes an iterable to read from, and returns an iterable that yields (possibly mutated) data. e.g.\n\n```js\nconst toPull = require('async-iterator-to-pull-stream')\nconst pull = require('pull-stream')\n\n// A \"pass through stream\" that reads from the `source` iterable and returns an\n// iterable (a generator in this case) that yields the same data.\nconst passThrough = source => (async function * () {\n  for await (const chunk of source) {\n    yield chunk // here we _could_ change the chunk or buffer it or whatever\n  }\n})()\n\npull(\n  pull.values([1, 2, 3]),\n  toPull.transform(passThrough),\n  pull.collect((err, chunks) => {\n    console.log(err, chunks) // logs: undefined, [1, 2, 3]\n  })\n)\n```\n\n### `toPull.sink(sink)`\n\nConvert a `sink` to a pull stream sink. A `sink` is a function that takes an async iterable and consumes some/all of it.\n\n```js\nconst toPull = require('async-iterator-to-pull-stream')\nconst pull = require('pull-stream')\n\npull(\n  pull.values([1, 2, 3]),\n  toPull.sink(async source => {\n    for await (const value of source) {\n      console.log(value) // logs: 1 then 2 then 3\n    }\n  })\n)\n```\n\n### `toPull.duplex(duplex)`\n\nConvert a `duplex` to a pull stream duplex. A `duplex` is just an object with two properties, `sink` (a function that takes an async iterable) and `source` (an async iterable).\n\n## Contribute\n\nFeel free to dive in! [Open an issue](https://github.com/alanshaw/async-iterator-to-pull-stream/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) © Alan Shaw\n","_attachments":{},"homepage":"https://github.com/alanshaw/async-iterator-to-pull-stream#readme","bugs":{"url":"https://github.com/alanshaw/async-iterator-to-pull-stream/issues"},"license":"MIT"}