A writable stream wrapper for objectMode streams.
npm install nanite-drainA writable stream wrapper that can attach a function to drain from any readable and transform type streams
that are set to objectMode: true. Handles both strings and objects. Designed for use with [Nanite][],
supports back pressure.
```
npm install nanite-drain --save
and nanite-fill with the nanite package. Bear in mind though that this module
can be used with any readable or transform stream, not just Nanite.` js
'use strict'// create a new instance of nanite and take a
// copy of both the fill and drain modules.
var nanite = require('nanite')(),
fill = require('nanite-fill'),
drain = require('nanite-drain')
// set up a basic handler, this should be called
// as many times as there are objects passed to fill.
var handlePrint = nanite.handlerFor({cmd: 'print'})
// drain is a simple write stream that accepts a
// back pressure supported function.
handlePrint(drain(function (msg, done) {
console.log('Message ' + msg.val + ' handled')
done()
}))
// fill accepts an array of messages and returns
// a primed readable stream. To push the messages
// into nanite is as simple as piping fill to it.
fill([
{cmd: 'print', val: 1},
{cmd: 'print', val: 2},
{cmd: 'print', val: 3},
{cmd: 'print', val: 4},
{cmd: 'print', val: 5}
]).pipe(nanite)
`API Overview
$3
Requiring nanite-drain produces a builder function for creating Drain instances. Each instance of
Drain maintains is it's own writeable stream which can pipe to any readable or transform stream.` jsvar drain = require('nanite-drain')
var instanceOne = drain(function (msg, done) {
done()
})
var instanceTwo = drain(function (msg, done) {
done()
})
``#### Can I use Through2 or other stream do-da's with Nanite - Drain ?
Yes! Nanite - Drain itself is a simple writable stream and as such can be piped to any standard readable
or transform stream. Most if not all modules based on standard streams should be compatible.
#### Does it work in browsers ?
Yes! Simply require as normal and let Webpack, Browserify, or other do their magic.
_See our [Contribution Guide][] for information on obtaining the source and an overview of the
tooling used._
Copyright Dean McDonnell 2015, Licensed under [MIT][].
[MIT]: ./LICENSE
[Contribution Guide]: ./CONTRIBUTING.md
[travis-badge]: https://img.shields.io/travis/mcdonnelldean/nanite-drain.svg?style=flat-square
[travis-url]: https://travis-ci.org/mcdonnelldean/nanite-drain
[git-badge]: https://img.shields.io/github/release/mcdonnelldean/nanite-drain.svg?style=flat-square
[git-url]: https://github.com/mcdonnelldean/nanite-drain/releases
[npm-badge]: https://img.shields.io/npm/v/nanite-drain.svg?style=flat-square
[npm-url]: https://npmjs.org/package/nanite-drain
[Nanite]: https://npmjs.org/package/nanite