Spaces:
Runtime error
Runtime error
File size: 978 Bytes
23ac194 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
'use strict'
const http = require('node:http')
const os = require('node:os')
const fs = require('node:fs')
const path = require('node:path')
function createDeferredPromise () {
const promise = {}
promise.promise = new Promise(function (resolve) {
promise.resolve = resolve
})
return promise
}
let count = 0
function createTempFile () {
const file = path.join(os.tmpdir(), `sonic-boom-${process.pid}-${count++}`)
function cleanup () {
try {
fs.unlinkSync(file)
} catch { }
}
return { file, cleanup }
}
function request (url, cleanup = () => { }) {
const promise = createDeferredPromise()
http.get(url, (res) => {
const chunks = []
// we consume the response
res.on('data', function (chunk) {
chunks.push(chunk)
})
res.once('end', function () {
cleanup(res, Buffer.concat(chunks).toString())
promise.resolve()
})
})
return promise.promise
}
module.exports = {
request,
createTempFile
}
|