UNPKG

880 BJavaScriptView Raw
1// decode-stream.js
2
3exports.createDecodeStream = DecodeStream;
4
5var util = require("util");
6var Transform = require("stream").Transform;
7var DecodeBuffer = require("./decode-buffer").DecodeBuffer;
8var decodeAsync = require("./read-core").decodeAsync;
9
10util.inherits(DecodeStream, Transform);
11
12var DEFAULT_OPTIONS = {objectMode: true};
13
14function DecodeStream(options) {
15 if (!(this instanceof DecodeStream)) return new DecodeStream(options);
16 if (options) {
17 options.objectMode = true;
18 } else {
19 options = DEFAULT_OPTIONS;
20 }
21 Transform.call(this, options);
22 var stream = this;
23 var decoder = this.decoder = new DecodeBuffer(options);
24 decoder.push = function(chunk) {
25 stream.push(chunk);
26 };
27}
28
29DecodeStream.prototype._transform = function(chunk, encoding, callback) {
30 this.decoder.append(chunk);
31 decodeAsync(this.decoder);
32 if (callback) callback();
33};