npm.io
16.3.1 • Published 4d ago

@xhmikosr/downloader

Licence
MIT
Version
16.3.1
Deps
7
Size
9 kB
Vulns
0
Weekly
0
Stars
7

@xhmikosr/downloader npm version CI Status

Download and extract files

See download-cli for the command-line version.

Install

npm install @xhmikosr/downloader

Usage

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'
});

Keywords