Spaces:
Paused
Paused
| ; | |
| const Readable = require('stream').Readable; | |
| // copy-paste from https://github.com/mysqljs/mysql/blob/master/lib/protocol/sequences/Query.js | |
| module.exports = function(command, connectionStream) { | |
| command.stream = function(options) { | |
| let stream; | |
| options = options || {}; | |
| options.objectMode = true; | |
| (stream = new Readable(options)), | |
| (stream._read = function() { | |
| connectionStream.resume(); | |
| }); | |
| this.on('result', (row, i) => { | |
| if (!stream.push(row)) { | |
| connectionStream.pause(); | |
| } | |
| stream.emit('result', row, i); // replicate old emitter | |
| }); | |
| this.on('error', err => { | |
| stream.emit('error', err); // Pass on any errors | |
| }); | |
| this.on('end', () => { | |
| stream.push(null); // pushing null, indicating EOF | |
| }); | |
| this.on('fields', (fields, i) => { | |
| stream.emit('fields', fields, i); // replicate old emitter | |
| }); | |
| return stream; | |
| }; | |
| }; | |