From d25e11bee6ca5ca523884da132d18e1400e077b9 Mon Sep 17 00:00:00 2001 From: Minteck Date: Tue, 24 Aug 2021 14:41:48 +0200 Subject: Initial commit --- node_modules/caw/index.js | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 node_modules/caw/index.js (limited to 'node_modules/caw/index.js') 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)); +}; -- cgit