Demo for query storing
Change-Id: I947bcac841992c3f6cfd01ab337c265b0d01cb70
diff --git a/node_modules/remove-bom-stream/index.js b/node_modules/remove-bom-stream/index.js
new file mode 100644
index 0000000..93501f1
--- /dev/null
+++ b/node_modules/remove-bom-stream/index.js
@@ -0,0 +1,51 @@
+'use strict';
+
+var through = require('through2');
+var removeBom = require('remove-bom-buffer');
+var SafeBuffer = require('safe-buffer').Buffer;
+
+function removeBomStream() {
+ var completed = false;
+ var buffer = SafeBuffer.alloc(0);
+
+ return through(onChunk, onFlush);
+
+ function removeAndCleanup(data) {
+ completed = true;
+
+ buffer = null;
+
+ return removeBom(data);
+ }
+
+ function onChunk(data, enc, cb) {
+ if (completed) {
+ return cb(null, data);
+ }
+
+ if (data.length >= 7) {
+ return cb(null, removeAndCleanup(data));
+ }
+
+ var bufferLength = buffer.length;
+ var chunkLength = data.length;
+ var totalLength = bufferLength + chunkLength;
+
+ buffer = SafeBuffer.concat([buffer, data], totalLength);
+
+ if (totalLength >= 7) {
+ return cb(null, removeAndCleanup(buffer));
+ }
+ cb();
+ }
+
+ function onFlush(cb) {
+ if (completed || !buffer) {
+ return cb();
+ }
+
+ cb(null, removeAndCleanup(buffer));
+ }
+}
+
+module.exports = removeBomStream;