Demo for query storing

Change-Id: I947bcac841992c3f6cfd01ab337c265b0d01cb70
diff --git a/node_modules/p-reduce/index.js b/node_modules/p-reduce/index.js
new file mode 100644
index 0000000..e121b32
--- /dev/null
+++ b/node_modules/p-reduce/index.js
@@ -0,0 +1,22 @@
+'use strict';
+module.exports = (iterable, reducer, initVal) => new Promise((resolve, reject) => {
+	const iterator = iterable[Symbol.iterator]();
+	let i = 0;
+
+	const next = total => {
+		const el = iterator.next();
+
+		if (el.done) {
+			resolve(total);
+			return;
+		}
+
+		Promise.all([total, el.value])
+			.then(value => {
+				next(reducer(value[0], value[1], i++));
+			})
+			.catch(reject);
+	};
+
+	next(initVal);
+});