export function httpsRequest(params: any, postData?: any) { return new Promise(function(resolve, reject) { let https = require('node:https'); var req = https.request(params, function(res: any) { // reject on bad status if (res.statusCode < 200 || res.statusCode >= 300) { //console.log(params, postData); return reject(new Error('statusCode=' + res.statusCode)); } // cumulate data var body: any[] = []; res.on('data', function(chunk: any) { body.push(chunk); }); // resolve on end res.on('end', function() { try { body = JSON.parse(Buffer.concat(body).toString()); } catch(e) { reject(e); } resolve(body); }); }); // reject on request error req.on('error', function(err: any) { // This is not a "Second reject", just a different sort of failure reject(err); }); if (postData) { req.write(postData); } // IMPORTANT req.end(); }); }