You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							53 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
	
	
							53 lines
						
					
					
						
							2.1 KiB
						
					
					
				"use strict"; | 
						|
var __extends = (this && this.__extends) || (function () { | 
						|
    var extendStatics = function (d, b) { | 
						|
        extendStatics = Object.setPrototypeOf || | 
						|
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | 
						|
            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; | 
						|
        return extendStatics(d, b); | 
						|
    }; | 
						|
    return function (d, b) { | 
						|
        if (typeof b !== "function" && b !== null) | 
						|
            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); | 
						|
        extendStatics(d, b); | 
						|
        function __() { this.constructor = d; } | 
						|
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | 
						|
    }; | 
						|
})(); | 
						|
Object.defineProperty(exports, "__esModule", { value: true }); | 
						|
exports.WritableStream = void 0; | 
						|
var Parser_1 = require("./Parser"); | 
						|
/* | 
						|
 * NOTE: If either of these two imports produces a type error, | 
						|
 * please update your @types/node dependency! | 
						|
 */ | 
						|
var stream_1 = require("stream"); | 
						|
var string_decoder_1 = require("string_decoder"); | 
						|
// Following the example in https://nodejs.org/api/stream.html#stream_decoding_buffers_in_a_writable_stream | 
						|
function isBuffer(_chunk, encoding) { | 
						|
    return encoding === "buffer"; | 
						|
} | 
						|
/** | 
						|
 * WritableStream makes the `Parser` interface available as a NodeJS stream. | 
						|
 * | 
						|
 * @see Parser | 
						|
 */ | 
						|
var WritableStream = /** @class */ (function (_super) { | 
						|
    __extends(WritableStream, _super); | 
						|
    function WritableStream(cbs, options) { | 
						|
        var _this = _super.call(this, { decodeStrings: false }) || this; | 
						|
        _this._decoder = new string_decoder_1.StringDecoder(); | 
						|
        _this._parser = new Parser_1.Parser(cbs, options); | 
						|
        return _this; | 
						|
    } | 
						|
    WritableStream.prototype._write = function (chunk, encoding, cb) { | 
						|
        this._parser.write(isBuffer(chunk, encoding) ? this._decoder.write(chunk) : chunk); | 
						|
        cb(); | 
						|
    }; | 
						|
    WritableStream.prototype._final = function (cb) { | 
						|
        this._parser.end(this._decoder.end()); | 
						|
        cb(); | 
						|
    }; | 
						|
    return WritableStream; | 
						|
}(stream_1.Writable)); | 
						|
exports.WritableStream = WritableStream;
 | 
						|
 |