'use strict' const http = require('http') const https = require('https') export interface response { statusCode: number, headers: object, body: string } export function httpRequest(urlOptions, data = ''): Promise { let operator = http if (urlOptions.startsWith('https')) operator = https return new Promise((resolve, reject) => { const request = operator.request(urlOptions, (result) => { let body = '' result.on('data', (chunk = '') => (body += chunk)) result.on('error', reject) result.on('end', () => { if (result.statusCode >= 200 && result.statusCode <= 299) { resolve({statusCode: result.statusCode, headers: result.headers, body: body}) } else { reject('Request failed. status: ' + result.statusCode + ', body: ' + body) } }) }) request.on('error', reject) request.write(data, 'binary') request.end() }) }