Add Robot_JoyIt driver
This commit is contained in:
53
node_modules/stream-json/utils/Utf8Stream.js
generated
vendored
Normal file
53
node_modules/stream-json/utils/Utf8Stream.js
generated
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
'use strict';
|
||||
|
||||
const {Transform} = require('stream');
|
||||
const {StringDecoder} = require('string_decoder');
|
||||
|
||||
class Utf8Stream extends Transform {
|
||||
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 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);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Utf8Stream;
|
||||
Reference in New Issue
Block a user