[ICO]NameLast modifiedSizeDescription
[PARENTDIR]Parent Directory  -  
[   ]LICENSE1985-10-26 08:15 765  
[TXT]README.md1985-10-26 08:15 1.2Kd768d73 docs [كارل مبارك]
[   ]index.js1985-10-26 08:15 1.0K3e510ca test new git [كارل مبارك]
[   ]package.json2023-06-13 07:17 1.8K3e510ca test new git [كارل مبارك]
# minipass-flush

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

## USAGE

```js
const Flush = require('minipass-flush')
cons 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.