123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- 'use strict'
- var Writable = require('readable-stream').Writable
- var inherits = require('inherits')
- function CallbackStream (options, callback) {
- if (!(this instanceof CallbackStream)) {
- return new CallbackStream(options, callback)
- }
- if (typeof options === 'function') {
- callback = options
- options = {}
- }
- Writable.call(this, options)
- this.results = []
- this.callback = callback
- this.on('finish', deliversCallback)
- this.once('pipe', handlePipe)
- }
- function deliversCallback () {
- this.callback(null, this.results)
- }
- function handlePipe (source) {
- source.on('error', this.callback)
- }
- inherits(CallbackStream, Writable)
- CallbackStream.prototype._write = function (data, encoding, done) {
- this.results.push(data)
- done()
- }
- CallbackStream.obj = function (options, callback) {
- if (typeof options === 'function') {
- callback = options
- options = {}
- }
- options.objectMode = true
- return new CallbackStream(options, callback)
- }
- module.exports = CallbackStream
|