0.1.10 • Published 2 years ago
@heliomarpm/dl-stream v0.1.10
Summary
The DownloadManager class is responsible for managing download tasks. It uses the Helpers class to handle file-related operations and the async library for task queuing and concurrency control.
Example Usage
const downloadManager = new DownloadManager(3); // Create a new DownloadManager with a concurrency of 3
downloadManager.enqueueItem({ url: 'https://example.com/file1', directory: './downloads', fileName: 'file1.txt' }); // Enqueue a download task
downloadManager.enqueueItem({ url: 'https://example.com/file2', directory: './downloads', fileName: 'file2.txt' });
downloadManager.start(); // Start the download tasks
downloadManager.onProgress((progress) => {
console.log(`Download progress: ${progress.percentage}%`);
});
downloadManager.onComplete(() => {
console.log('All downloads completed');
});Code Analysis
Main functionalities
- Manages download tasks, including starting, pausing, resuming, and canceling tasks.
- Uses the
Helpersclass to handle file-related operations. - Uses the
asynclibrary for task queuing and concurrency control. - Emits events for progress and completion of downloads.
Methods
constructor(concurrency: number = 1, displayLog: boolean = false): Initializes a new instance of theDownloadManagerclass with the specified concurrency and display log settings.start(): Starts the download tasks.pause(): Pauses the download tasks.resume(): Resumes the download tasks.cancel(): Cancels the download tasks.enqueueItem(item: DownloadItem): Enqueues a download task.onProgress(callback: (progress: DownloadProgress) => void): Registers a callback function to be called when a progress event is emitted.onError(callback: (error: Error, task: DownloadItem) => void): Registers a callback function to be called when an error event is emitted.onComplete(callback: () => void): Registers a callback function to be called when a complete event is emitted.queueCount(): Returns the number of tasks in the task queue.queueStatus(): Returns the current status of the download stream.
Fields
queue: An instance of theasync.QueueObjectclass from theasynclibrary, used for task queuing and concurrency control.status: The current status of the download tasks.helper: An instance of theHelpersclass, used for file-related operations._displayLog: A boolean flag indicating whether to display log messages.
Dependencies
- async: Async is a utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript.
- axios: Promise based HTTP client for the browser and node.js
Contributing
Please make sure to read the Contributing Guide before making a pull request.
Thank you to all the people who already contributed to project!
Made with contrib.rocks.
That said, there's a bunch of ways you can contribute to this project, like by:
- :beetle: Reporting a bug
- :page_facing_up: Improving this documentation
- :rotating_light: Sharing this project and recommending it to your friends
- :dollar: Supporting this project on GitHub Sponsors or Ko-fi
- :star2: Giving a star on this repository
Donate
If you appreciate that, please consider donating to the Developer.