summaryrefslogtreecommitdiff
path: root/desktop/node_modules/global-agent/dist/utilities/parseProxyUrl.js.flow
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/node_modules/global-agent/dist/utilities/parseProxyUrl.js.flow')
-rw-r--r--desktop/node_modules/global-agent/dist/utilities/parseProxyUrl.js.flow36
1 files changed, 36 insertions, 0 deletions
diff --git a/desktop/node_modules/global-agent/dist/utilities/parseProxyUrl.js.flow b/desktop/node_modules/global-agent/dist/utilities/parseProxyUrl.js.flow
new file mode 100644
index 0000000..e2e9a6b
--- /dev/null
+++ b/desktop/node_modules/global-agent/dist/utilities/parseProxyUrl.js.flow
@@ -0,0 +1,36 @@
+// @flow
+
+import {
+ parse as parseUrl,
+} from 'url';
+import {
+ UnexpectedStateError,
+} from '../errors';
+
+export default (url: string) => {
+ const urlTokens = parseUrl(url);
+
+ if (urlTokens.query !== null) {
+ throw new UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL must not have query.');
+ }
+
+ if (urlTokens.hash !== null) {
+ throw new UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL must not have hash.');
+ }
+
+ if (urlTokens.protocol !== 'http:') {
+ throw new UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL protocol must be "http:".');
+ }
+
+ let port = 80;
+
+ if (urlTokens.port) {
+ port = Number.parseInt(urlTokens.port, 10);
+ }
+
+ return {
+ authorization: urlTokens.auth || null,
+ hostname: urlTokens.hostname,
+ port,
+ };
+};