Files
2022-07-12 16:34:41 +02:00

36 lines
898 B
TypeScript

'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<response> {
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()
})
}