pull-pushable

WebJar for pull-pushable

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

pull-pushable
Last Version

Last Version

2.2.0
Release Date

Release Date

Type

Type

jar
Description

Description

pull-pushable
WebJar for pull-pushable
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/pull-stream/pull-pushable

Download pull-pushable

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/pull-pushable/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>pull-pushable</artifactId>
    <version>2.2.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/pull-pushable/
implementation 'org.webjars.npm:pull-pushable:2.2.0'
// https://jarcasting.com/artifacts/org.webjars.npm/pull-pushable/
implementation ("org.webjars.npm:pull-pushable:2.2.0")
'org.webjars.npm:pull-pushable:jar:2.2.0'
<dependency org="org.webjars.npm" name="pull-pushable" rev="2.2.0">
  <artifact name="pull-pushable" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='pull-pushable', version='2.2.0')
)
libraryDependencies += "org.webjars.npm" % "pull-pushable" % "2.2.0"
[org.webjars.npm/pull-pushable "2.2.0"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

pull-pushable

A pull-stream source with a pushable interface.

Use this when you really can't pull from your source. For example, often I like to have a "live" stream. This would read a series of data, first old data, but then stay open and read new data as it comes in.

In that case, the new data needs to be queued up while the old data is read, and also, the rate things are pushed into the queue doesn't affect the rate of reads.

If there is no realtime aspect to this stream, it's likely that you don't need pushable. Instead try just using pull.values(array).

Example

var Pushable = require('pull-pushable')
var pull     = require('pull-stream')
var p = Pushable()

pull(p, pull.drain(console.log))

p.push(1)
p.end()

Also, can provide a listener for when the stream is closed.

var Pushable = require('pull-pushable')
var pull     = require('pull-stream')
var p = Pushable(function (err) {
  console.log('stream closed!')
})

//read 3 times then abort.
pull(p, pull.take(3), pull.drain(console.log))

p.push(1)
p.push(2)
p.push(3)
p.push(4) //stream will be aborted before this is output

When giving the stream away and you don't want the user to have the push/end functions, you can pass a separated option. It returns { push, end, source, buffer }.

function createStream () {
  var p = Pushable(true) // optionally pass `onDone` after it

  somethingAsync((err, data) => {
    if (err) return p.end(err)
    p.push(data)
  })

  return p.source
}

var stream = createStream()
// stream.push === undefined

The current buffer array is exposed as buffer if you need to inspect or manipulate it.

API

var p = Pushable([separated][, onClose])

Returns an new instance of Pushable.

If separated is true, then p.source will be exposed, allowing just the source stream to be exposed without access to the rest of the Pushable API.

onClose, if provided, will be called with err, which may be true (normal stream end) or an Error instance, indicating an error occurred in the pipeline.

p.push(buf)

Push a Buffer, buf, into the Pushable.

p.end([err])

Ends the source, with optional error err.

p.buffer

The current buffer of unread data that's been pushed to p.

License

MIT

org.webjars.npm

Versions

Version
2.2.0