|
|
- 'use strict';
-
- var debug = require('util').debuglog('urllib:detect_proxy_agent');
- var getProxyFromURI = require('./get_proxy_from_uri');
-
- var proxyAgents = {};
-
- function detectProxyAgent(uri, args) {
- if (!args.enableProxy && !process.env.URLLIB_ENABLE_PROXY) {
- return null;
- }
- var proxy = args.proxy || process.env.URLLIB_PROXY;
- if (!proxy) {
- proxy = getProxyFromURI(uri);
- if (!proxy) {
- return null;
- }
- }
-
- var proxyAgent = proxyAgents[proxy];
- if (!proxyAgent) {
- debug('create new proxy %s', proxy);
- // lazy require, only support node >= 4
- proxyAgent = proxyAgents[proxy] = new (require('proxy-agent'))(proxy);
- }
- debug('get proxy: %s', proxy);
- return proxyAgent;
- }
-
- module.exports = detectProxyAgent;
- module.exports.proxyAgents = proxyAgents;
|