'use strict'; var _http = require('http'); var _http2 = _interopRequireDefault(_http); var _proxy = require('proxy'); var _proxy2 = _interopRequireDefault(_proxy); var _server = require('./server'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // Set up upstream proxy with no auth var upstreamProxyHttpServer = _http2.default.createServer(); // eslint-disable-line import/no-extraneous-dependencies /*! * This script runs the proxy with a second upstream proxy locally on port specified by PORT environment variable * or 8080 if not provided. This is used to manually test the proxy on normal browsing. * * node ./build/run_locally.js * * Author: Jan Curn (jan@apify.com) * Copyright(c) 2017 Apify Technologies. All rights reserved. * */ upstreamProxyHttpServer.on('error', function (err) { console.error(err.stack || err); }); var upstreamProxyServer = (0, _proxy2.default)(upstreamProxyHttpServer); var upstreamProxyPort = process.env.UPSTREAM_PROXY_PORT || 8081; upstreamProxyServer.listen(process.env.UPSTREAM_PROXY_PORT || 8081, function (err) { if (err) { console.error(err.stack || err); process.exit(1); } }); // Setup proxy to forward to upstream var server = new _server.Server({ port: process.env.PORT || 8080, // verbose: true, prepareRequestFunction: function prepareRequestFunction() { return { requestAuthentication: false, upstreamProxyUrl: 'http://127.0.0.1:' + upstreamProxyPort }; } }); server.on('requestFailed', function (_ref) { var error = _ref.error, request = _ref.request; console.error('Request failed (' + (request ? request.url : 'N/A') + '): ' + (error.stack || error)); }); server.listen().then(function () { console.log('Proxy server is running at http://127.0.0.1:' + server.port); setInterval(function () { console.log('Stats: ' + JSON.stringify(server.stats)); }, 30000); }).catch(function (err) { console.error(err.stack || err); process.exit(1); });