function get(options, noJSON = false) { return new Promise((resolve, reject) => { https .get(options, makeCallback(resolve, reject, noJSON)) .on('error', reject); }); }
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}`); }); }); }
function request(options, postData) { return new Promise((resolve, reject) => { const req = https.request(options, makeCallback(resolve, reject)); req.on('error', reject); req.write(postData); req.end(); }); }
// 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); }); }
function request(options, postData) { return new Promise((resolve, reject) => { const req = https.request(options, makeCallback(resolve, reject)); req.on('error', reject); req.write(postData); req.end(); }); }