aboutsummaryrefslogtreecommitdiff
path: root/node_modules/mysql2/lib/results_stream.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/mysql2/lib/results_stream.js')
-rw-r--r--node_modules/mysql2/lib/results_stream.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/node_modules/mysql2/lib/results_stream.js b/node_modules/mysql2/lib/results_stream.js
new file mode 100644
index 0000000..66fe343
--- /dev/null
+++ b/node_modules/mysql2/lib/results_stream.js
@@ -0,0 +1,38 @@
+'use strict';
+
+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;
+ };
+};