const axios = require('axios') const fs = require('fs') module.exports = download = (async (url, file, headers) => { let path = `./cracks/${file}` let writer = fs.createWriteStream(path) try { await axios({ url: url + file, method: 'GET', responseType: 'stream', headers }).then(response => { return new Promise((resolve, reject) => { response.data.pipe(writer) let error = null writer.on('error', err => { error = err; writer.close(); reject(err) }) writer.on('close', () => { if (!error) resolve(true) }) }) }).catch(console.error) return path } catch (error) { console.error(error) } })