minipass-flush

WebJar for minipass-flush

License

License

ISC
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

minipass-flush
Last Version

Last Version

1.0.5
Release Date

Release Date

Type

Type

jar
Description

Description

minipass-flush
WebJar for minipass-flush
Project URL

Project URL

https://www.webjars.org
Source Code Management

Source Code Management

https://github.com/isaacs/minipass-flush

Download minipass-flush

How to add to project

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

Dependencies

compile (1)

Group / Artifact Type Version
org.webjars.npm : minipass jar [3.0.0,4)

Project Modules

There are no modules declared in this project.

minipass-flush

A Minipass stream that calls a flush function before emitting 'end'

USAGE

const Flush = require('minipass-flush')
const f = new Flush({
  flush (cb) {
    // call the cb when done, or return a promise
    // the 'end' event will wait for it, along with
    // close, finish, and prefinish.
    // call the cb with an error, or return a rejecting
    // promise to emit 'error' instead of doing the 'end'
    return rerouteAllEncryptions().then(() => clearAllChannels())
  },
  // all other minipass options accepted as well
})

someDataSource.pipe(f).on('end', () => {
  // proper flushing has been accomplished
})

// Or as a subclass implementing a 'flush' method:
class MyFlush extends Flush {
  flush (cb) {
    // old fashioned callback style!
    rerouteAllEncryptions(er => {
      if (er)
        return cb(er)
      clearAllChannels(er => {
        if (er)
          cb(er)
        cb()
      })
    })
  }
}

That's about it.

If your flush method doesn't have to do anything asynchronous, then it's better to call the callback right away in this tick, rather than returning Promise.resolve(), so that the end event can happen as soon as possible.

Versions

Version
1.0.5