charybdis
drain an object stream and wrap it in a promise
usage
Think of it as a streaming version of Q.all. Pipe a stream of promises into it and await them all to resolve, or reject on any error.
var charybdis = var readStream = // from somewhere var done = done
In pseudo code, lets say we want to stream a log file and validate a resource in the db:
api
charybdis := handler?: Promise) WriteStream & Promise<Stats> type Stats : objects: Number operations: Number start: Timestamp streamEnd: Timestamp end: Timestamp emits: inEnd: Event<void> when the ReadStream ends tick: Event<Stats> periodically as processing is happeningresolves: when each of the promises is resolvedrejected: when any of of the promises is rejected or on stream error
The promiser
is a function called on every item in the read stream.
If it returns a Promise
, that is considered to be an operation.
Once all input streams have ended and all operations have been resolved,
the aggregate promise will be resolved.
installation
$ npm install charybdis
running the tests
From package root:
$ npm install
$ npm test
contributors
- jden jason@denizac.org
license
MIT. (c) MMXIII AgileMD hello@agilemd.com. See LICENSE.md