Demo for query storing
Change-Id: I947bcac841992c3f6cfd01ab337c265b0d01cb70
diff --git a/node_modules/caw/index.js b/node_modules/caw/index.js
new file mode 100644
index 0000000..69e7f55
--- /dev/null
+++ b/node_modules/caw/index.js
@@ -0,0 +1,37 @@
+'use strict';
+const url = require('url');
+const getProxy = require('get-proxy');
+const isurl = require('isurl');
+const tunnelAgent = require('tunnel-agent');
+const urlToOptions = require('url-to-options');
+
+module.exports = (proxy, opts) => {
+ proxy = proxy || getProxy();
+ opts = Object.assign({}, opts);
+
+ if (typeof proxy === 'object') {
+ opts = proxy;
+ proxy = getProxy();
+ }
+
+ if (!proxy) {
+ return null;
+ }
+
+ proxy = isurl.lenient(proxy) ? urlToOptions(proxy) : url.parse(proxy);
+
+ const uriProtocol = opts.protocol === 'https' ? 'https' : 'http';
+ const proxyProtocol = proxy.protocol === 'https:' ? 'Https' : 'Http';
+ const port = proxy.port || (proxyProtocol === 'Https' ? 443 : 80);
+ const method = `${uriProtocol}Over${proxyProtocol}`;
+
+ delete opts.protocol;
+
+ return tunnelAgent[method](Object.assign({
+ proxy: {
+ port,
+ host: proxy.hostname,
+ proxyAuth: proxy.auth
+ }
+ }, opts));
+};