Demo for query storing
Change-Id: I947bcac841992c3f6cfd01ab337c265b0d01cb70
diff --git a/node_modules/isurl/index.js b/node_modules/isurl/index.js
new file mode 100644
index 0000000..70ed1d7
--- /dev/null
+++ b/node_modules/isurl/index.js
@@ -0,0 +1,58 @@
+"use strict";
+const hasToStringTag = require("has-to-string-tag-x");
+const isObject = require("is-object");
+
+const toString = Object.prototype.toString;
+const urlClass = "[object URL]";
+
+const hash = "hash";
+const host = "host";
+const hostname = "hostname";
+const href = "href";
+const password = "password";
+const pathname = "pathname";
+const port = "port";
+const protocol = "protocol";
+const search = "search";
+const username = "username";
+
+
+
+const isURL = (url, supportIncomplete/*=false*/) =>
+{
+ if (!isObject(url)) return false;
+
+ // Native implementation in older browsers
+ if (!hasToStringTag && toString.call(url) === urlClass) return true;
+
+ if (!(href in url)) return false;
+ if (!(protocol in url)) return false;
+ if (!(username in url)) return false;
+ if (!(password in url)) return false;
+ if (!(hostname in url)) return false;
+ if (!(port in url)) return false;
+ if (!(host in url)) return false;
+ if (!(pathname in url)) return false;
+ if (!(search in url)) return false;
+ if (!(hash in url)) return false;
+
+ if (supportIncomplete !== true)
+ {
+ if (!isObject(url.searchParams)) return false;
+
+ // TODO :: write a separate isURLSearchParams ?
+ }
+
+ return true;
+}
+
+
+
+isURL.lenient = url =>
+{
+ return isURL(url, true);
+};
+
+
+
+module.exports = isURL;