Demo for query storing

Change-Id: I947bcac841992c3f6cfd01ab337c265b0d01cb70
diff --git a/node_modules/continuable-cache/index.js b/node_modules/continuable-cache/index.js
new file mode 100644
index 0000000..59802bb
--- /dev/null
+++ b/node_modules/continuable-cache/index.js
@@ -0,0 +1,29 @@
+var Nil = {}
+
+module.exports = cache
+
+// cache := (Continuable<T>) => Continuable<T>
+function cache(source) {
+    var _err = Nil
+    var _value = Nil
+    var _result = null
+    var listeners = null
+
+    return function continuable(callback) {
+        if (_err !== Nil || _value !== Nil) {
+            callback(_err, _value)
+        } else if (listeners) {
+            listeners.push(callback)
+        } else {
+            listeners = [callback]
+            _result = source(function (err, value) {
+                _err = err
+                _value = value
+
+                listeners.forEach(function (l) { l(err, value) })
+            })
+        }
+
+        return _result
+    }
+}