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