@xhmikosr/downloader
v16.3.0
Published
Download and extract files
Downloads
15,779,718
Maintainers
Readme
@xhmikosr/downloader

Download and extract files
See download-cli for the command-line version.
Install
npm install @xhmikosr/downloaderUsage
import fs from 'node:fs';
import download from '@xhmikosr/downloader';
(async () => {
await download('http://unicorn.com/foo.jpg', 'dist');
fs.writeFileSync('dist/foo.jpg', await download('http://unicorn.com/foo.jpg'));
download('http://unicorn.com/foo.jpg').pipe(fs.createWriteStream('dist/foo.jpg'));
await Promise.all([
'http://unicorn.com/foo.jpg',
'http://cats.com/dancing.gif'
].map(url => download(url, 'dist')));
})();Proxies
To work with proxies, read the got documentation.
SSL
TLS certificate verification is enabled by default. It honors npm's strict-ssl config, so running npm config set strict-ssl false disables it for self-signed certificates or proxy setups. Override per call with options.got.https.rejectUnauthorized.
API
download(url, destination?, options?)
Returns both a Promise<Buffer> and a Duplex stream with additional events.
url
Type: string
URL to download.
destination
Type: string
Directory to save the file to.
options
options.got
Type: Object
Same options as got.
options.decompress
Same options as decompress.
options.extract
- Type:
boolean - Default:
false
If set to true, try extracting the file using decompress.
options.filename
Type: string
Name of the saved file.
options.hash
Type: string
Expected hash of the downloaded data as "<algorithm>:<hex>", checked before it's extracted or written. A mismatch throws. algorithm is any digest crypto.createHash accepts.
await download('http://unicorn.com/foo.tar.gz', 'dist', {
hash: 'sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'
});