| module.exports = Stream; |
| |
| var Parser = require("./Parser.js"), |
| WritableStream = require("stream").Writable || require("readable-stream").Writable, |
| StringDecoder = require("string_decoder").StringDecoder, |
| Buffer = require("buffer").Buffer; |
| |
| function Stream(cbs, options){ |
| var parser = this._parser = new Parser(cbs, options); |
| var decoder = this._decoder = new StringDecoder(); |
| |
| WritableStream.call(this, {decodeStrings: false}); |
| |
| this.once("finish", function(){ |
| parser.end(decoder.end()); |
| }); |
| } |
| |
| require("inherits")(Stream, WritableStream); |
| |
| WritableStream.prototype._write = function(chunk, encoding, cb){ |
| if(chunk instanceof Buffer) chunk = this._decoder.write(chunk); |
| this._parser.write(chunk); |
| cb(); |
| }; |