function get(options, noJSON = false) { return new Promise((resolve, reject) => { https .get(options, makeCallback(resolve, reject, noJSON)) .on('error', reject); }); }
https.get(url, function(response) { if (response.statusCode !== 200) reject(new Error(`HTTP error ${response.statusCode}`)); response.pipe(file); file.on('finish', function() { // file.close(); resolve(); }); }).on('error', (error) => { reject(error); });
https.request(request, function (res) { var data = ''; res.on('data', function (chunk) { data += chunk; }); res.on('end', function () { data = JSON.parse(data); resolve(data); }); }).on('error', function () { reject('Failed to make an OAuth request'); })
var proxy = function (request, response) { var req = http.request(request.url + (request.url.indexOf('?') == -1 ? '?' : '&') + 'proxy=' + request.socket.localPort); req.addListener('response', function (res) { res.addListener('data', function (chunk) { response.write(chunk, 'binary'); }); res.addListener('end', function () { response.end(); }); response.writeHead(res.statusCode, res.headers); }); request.addListener('data', function (chunk) { req.write(chunk, 'binary'); }); request.addListener('end', function () { req.end(); }); }
request.on('error', function(err) { console.error('ERROR', err); process.exit(1); });
const downloadFileFromURI = uri => { return new Promise((res, rej) => { http.get(uri, response => { response.setDefaultEncoding('base64'); let body = `data:${response.headers['content-type']};base64,`; response.on('data', data => body += data); response.on('end', () => res(body)); }).on('error', e => { rej(`Error downloading file from ${uri}: ${e.message}`); }); }); }
}).on('error', reject); });
// Retrieve Google Signin Keys (with cache control) function getGoogleKeyByKeyId(keyId) { if (cache[keyId] && cache.expiresAt > new Date()) { return cache[keyId]; } return new Promise((resolve, reject) => { https.get(`https://www.googleapis.com/oauth2/v3/certs`, res => { let data = ''; res.on('data', chunk => { data += chunk.toString('utf8'); }); res.on('end', () => { const {keys} = JSON.parse(data); const pems = keys.reduce((pems, {n: modulus, e: exposant, kid}) => Object.assign(pems, {[kid]: rsaPublicKeyToPEM(modulus, exposant)}), {}); if (res.headers['cache-control']) { var expire = res.headers['cache-control'].match(/max-age=([0-9]+)/); if (expire) { cache = Object.assign({}, pems, {expiresAt: new Date((new Date()).getTime() + Number(expire[1]) * 1000)}); } } resolve(pems[keyId]); }); }).on('error', reject); }); }
libreq.on('error', (err) => callback(new Error('Could not connect to stdlib reflect')));
function get(options, noJSON = false) { return new Promise((resolve, reject) => { https.get(options, makeCallback(resolve, reject, noJSON)).on('error', reject); }); }
https .request(request, function(res) { var data = ''; res.on('data', function(chunk) { data += chunk; }); res.on('end', function() { data = JSON.parse(data); resolve(data); }); }) .on('error', function() { reject('Failed to make an OAuth request'); })