123456789101112131415161718192021222324252627282930313233343536 |
- // @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,
- };
- };
|