download
raw
978 Bytes
'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
}

Xet Storage Details

Size:
978 Bytes
·
Xet hash:
85b768de90a246c36361c913af1678dc7f56f4c028248d21f97d7c6ea30cbc47

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.