Add Robot_JoyIt driver
This commit is contained in:
39
node_modules/stream-chain/utils/take.js
generated
vendored
Normal file
39
node_modules/stream-chain/utils/take.js
generated
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
'use strict';
|
||||
|
||||
const {Transform} = require('stream');
|
||||
|
||||
class Take extends Transform {
|
||||
constructor(options) {
|
||||
super(Object.assign({}, options, {writableObjectMode: true, readableObjectMode: true}));
|
||||
this._n = this._skip = 0;
|
||||
if (options) {
|
||||
'n' in options && (this._n = options.n);
|
||||
'skip' in options && (this._skip = options.skip);
|
||||
}
|
||||
if (this._skip <= 0) {
|
||||
this._transform = this._n > 0 ? this._countValues : this._doNothing;
|
||||
}
|
||||
}
|
||||
_transform(chunk, encoding, callback) {
|
||||
if (--this._skip <= 0) {
|
||||
this._transform = this._n > 0 ? this._countValues : this._doNothing;
|
||||
}
|
||||
callback(null);
|
||||
}
|
||||
_countValues(chunk, encoding, callback) {
|
||||
if (--this._n <= 0) {
|
||||
this._transform = this._doNothing;
|
||||
}
|
||||
this.push(chunk);
|
||||
callback(null);
|
||||
}
|
||||
_doNothing(chunk, encoding, callback) {
|
||||
callback(null);
|
||||
}
|
||||
static make(n) {
|
||||
return new Take(typeof n == 'object' ? n : {n});
|
||||
}
|
||||
}
|
||||
Take.make.Constructor = Take;
|
||||
|
||||
module.exports = Take.make;
|
||||
Reference in New Issue
Block a user