UNPKG

ravendb

Version:
50 lines 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Utf8Stream = void 0; const node_stream_1 = require("node:stream"); const node_string_decoder_1 = require("node:string_decoder"); class Utf8Stream extends node_stream_1.Transform { _buffer; _stringDecoder; constructor(options) { super(Object.assign({}, options, { writableObjectMode: false })); this._buffer = ''; } _transform(chunk, encoding, callback) { if (typeof chunk == 'string') { this._transform = this._transformString; } else { this._stringDecoder = new node_string_decoder_1.StringDecoder(); this._transform = this._transformBuffer; } this._transform(chunk, encoding, callback); } _transformBuffer(chunk, _, callback) { this._buffer += this._stringDecoder.write(chunk); this._processBuffer(callback); } _transformString(chunk, _, callback) { this._buffer += chunk.toString(); this._processBuffer(callback); } _processBuffer(callback) { if (this._buffer) { this.push(this._buffer, 'utf8'); this._buffer = ''; } callback(null); } _flushInput() { // meant to be called from _flush() if (this._stringDecoder) { this._buffer += this._stringDecoder.end(); } } _flush(callback) { this._flushInput(); this._processBuffer(callback); } } exports.Utf8Stream = Utf8Stream; //# sourceMappingURL=Utf8Stream.js.map