A node.js wrapper around axel downloader.
- Install Axel.
macOS
brew install axel
Ubuntu
sudo apt install axel
- Install
axel-downloader
fromnpm
:
yarn add axel-downloader
# or
npm i axel-downloader -S
import { Download } from 'axel-downloader';
const url = 'http://somewhere-something.xyz/some-file.abc';
const downloadPath = '/home/username/Downloads'; // OPTIONAL
const options = {
connections: 32,
maxSpeed: 6000, // KB
userAgent: 'Axel Bot',
headers: [{
key: 'token',
value: 'n0tS0f3'
}]
}; // OPTIONAL
const download = new Download(url, downloadPath, options);
download.on('start', () => {
console.log('Download Started!');
});
download.on('progress', data => {
console.log('Progress', data);
});
download.on('error', err => {
console.log('Error', err);
});
download.on('connection-finished', data => {
console.log('Connection Finished', data);
});
download.on('finish', () => {
console.log('Download Finished!');
});
download.on('stop', () => {
console.log('Download Stopped!');
});
download.start();
Download
class inherits from EventEmitter. You can listen on it for start
, progress
, error
, connection-finished
, finish
, stop
events.
More details will be added.
yarn test
# or
npm test
Just create an issue and describe it. I'll check it ASAP!
You can fork the repository, improve or fix some part of it and then send the pull requests back if you want to see them here. I really appreciate that. ❤️
Remember to write a few tests if you can. 🔧
Licensed under the MIT License.