Socket
Socket
Sign inDemoInstall

async-iterator-to-pull-stream

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

async-iterator-to-pull-stream

Convert a (async) iterator to a pull stream


Version published
Maintainers
1
Created
Source

async-iterator-to-pull-stream

Build Status dependencies Status

Convert a (async) iterator to a pull stream

Install

npm install async-iterator-to-pull-stream

Usage

const pull = require('pull-stream')
const toPull = require('async-iterator-to-pull-stream')

const source = (async function * () {
  const sourceValues = [1, 2, 3, 4, 5]
  for (let i = 0; i < sourceValues.length; i++) {
    yield await new Promise(resolve => setTimeout(() => resolve(sourceValues[i])))
  }
})()

pull(
  toPull.source(source),
  pull.collect((err, values) => {
    console.log(values) // 1, 2, 3, 4, 5
  })
)

API

toPull.source(iterator)

Convert an async iterator into a source pull stream. Returns a pull stream that can be used as a source in a pull pipeline.

toPull.transform(transform)

A transform is a function that takes an iterable to read from, and returns an iterable that yields (possibly mutated) data. e.g.

const toPull = require('async-iterator-to-pull-stream')
const pull = require('pull-stream')

// A "pass through stream" that reads from the `source` iterable and returns an
// iterable (a generator in this case) that yields the same data.
const passThrough = source => (async function * () {
  for await (const chunk of source) {
    yield chunk // here we _could_ change the chunk or buffer it or whatever
  }
})()

pull(
  pull.values([1, 2, 3]),
  toPull.transform(passThrough),
  pull.collect((err, chunks) => {
    console.log(err, chunks) // logs: undefined, [1, 2, 3]
  })
)

toPull.sink(sink)

Convert a sink to a pull stream sink. A sink is a function that takes an async iterable and consumes some/all of it.

const toPull = require('async-iterator-to-pull-stream')
const pull = require('pull-stream')

pull(
  pull.values([1, 2, 3]),
  toPull.sink(async source => {
    for await (const value of source) {
      console.log(value) // logs: 1 then 2 then 3
    }
  })
)

toPull.duplex(duplex)

Convert 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).

Contribute

Feel free to dive in! Open an issue or submit PRs.

License

MIT © Alan Shaw

Keywords

FAQs

Package last updated on 30 Mar 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc