| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- '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
|