Network Processor Module

    it-pushable
    TypeScript icon, indicating that this package has built-in type declarations

    2.0.1 • Public • Published

    it-pushable

    Build Status Dependencies Status JavaScript Style Guide

    An iterable that you can push values into

    Install

    npm install it-pushable

    Usage

    import { pushable } from 'it-pushable'
    
    const source = pushable()
    
    setTimeout(() => source.push('hello'), 100)
    setTimeout(() => source.push('world'), 200)
    setTimeout(() => source.end(), 300)
    
    const start = Date.now()
    
    for await (const value of source) {
      console.log(`got "${value}" after ${Date.now() - start}ms`)
    }
    console.log(`done after ${Date.now() - start}ms`)
    
    /*
    Output:
    got "hello" after 105ms
    got "world" after 207ms
    done after 309ms
    */
    import { pushableV } from 'it-pushable'
    import all from 'it-all'
    
    const source = pushableV()
    
    source.push(1)
    source.push(2)
    source.push(3)
    source.end()
    
    console.info(await all(source))
    /*
    Output:
    [ [1, 2, 3] ]
    */

    API

    pushable([options])

    Create a new async iterable. The values yielded from calls to .next() or when used in a for await of loop are "pushed" into the iterable. Returns an async iterable object with the following additional methods:

    • .push(value) - push a value into the iterable. Values are yielded from the iterable in the order they are pushed. Values not yet consumed from the iterable are buffered
    • .end([err]) - end the iterable after all values in the buffer (if any) have been yielded. If an error is passed the buffer is cleared immediately and the next iteration will throw the passed error

    options is an optional parameter, an object with the following properties:

    • onEnd - a function called after all values have been yielded from the iterator (including buffered values). In the case when the iterator is ended with an error it will be passed the error as a parameter.

    pushableV([options])

    Similar to pushable, except it yields multiple buffered chunks at a time. All values yielded from the iterable will be arrays.

    Related

    • it-pipe Utility to "pipe" async iterables together

    Contribute

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

    License

    MIT © Alan Shaw

    Install

    npm i it-pushable

    DownloadsWeekly Downloads

    16,685

    Version

    2.0.1

    License

    MIT

    Unpacked Size

    27.2 kB

    Total Files

    13

    Last publish

    Collaborators

    • achingbrain
    • alanshaw