UNPKG

browserstack-local

Version:
62 lines (56 loc) 1.48 kB
const https = require('https'), fs = require('fs'), HttpsProxyAgent = require('https-proxy-agent'); const authToken = process.argv[2], proxyHost = process.argv[5], proxyPort = process.argv[6], useCaCertificate = process.argv[7], downloadFallback = process.argv[3], downloadErrorMessage = process.argv[4]; let body = '', data = {'auth_token': authToken}; const options = { hostname: 'local.browserstack.com', port: 443, path: '/binary/api/v1/endpoint', method: 'POST', headers: { 'Content-Type': 'application/json', 'user-agent': process.env.USER_AGENT } }; if (downloadFallback == 'true') { options.headers['X-Local-Fallback-Cloudflare'] = true; data['error_message'] = downloadErrorMessage; } if(proxyHost && proxyPort) { options.agent = new HttpsProxyAgent({ host: proxyHost, port: proxyPort }); } if (useCaCertificate) { try { options.ca = fs.readFileSync(useCaCertificate); } catch(err) { console.log('failed to read cert file', err); } } const req = https.request(options, res => { res.on('data', d => { body += d; }); res.on('end', () => { try { const reqBody = JSON.parse(body); if(reqBody.error) { throw reqBody.error; } console.log(reqBody.data.endpoint); } catch (e) { console.error(e); } }); res.on('error', (err) => { console.error(err); }); }); req.on('error', e => { console.error(e); }); req.write(JSON.stringify(data)); req.end();