stream-limit-throughput
Version:
Advanced throughput throttling for node streams
26 lines (19 loc) • 811 B
JavaScript
;
exports.__esModule = true;
exports.createTf = exports.fillTransform = undefined;
var _through = require('through2');
var _through2 = _interopRequireDefault(_through);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
const fillTransform = exports.fillTransform = (ts, context, chunk, cb) => {
ts.push(chunk);
const items = context.items += 1; // eslint-disable-line
if (items >= context.max && !context.input.isPaused()) {
context.input.pause();
context.emit('filled');
}
cb();
};
const createTf = exports.createTf = context => function tf(chunk, enc, cb) {
return fillTransform(this, context, chunk, cb);
};
exports['default'] = context => (0, _through2['default'])({ objectMode: context.objectMode }, createTf(context));