2.1.1 • Published 2 months ago
dl-vampire v2.1.1
dl-vampire
download file like a vampire
Highlight
- skip mechanism, local file & content-length
- retry / timeout support
- stream to file, not ate memory like the download module
- download progress support, via awesome got module
Install
$ npm i dl-vampire --save
API
import dl, { Vampire, readUrl } from 'dl-vampire'
dl(options: DlOptions) => Promise<{skip: boolean}>
name | type | required | default value | description |
---|---|---|---|---|
options.url | String | true | the download url | |
options.file | String | true | the local target file path | |
options.onprogress | function(progress) | got downloadProgress event listener | ||
options.retry | Object | {times: 5, timeout: false} | retry options, will pass to promise.retry | |
options.skipExists | boolean | true | if local file already exists AND file stat size match response content-length size, the download will be skiped | |
options.expectSize | number | validate local file stat.size === expectSize , if check pass the download will be skiped | ||
options.expectHash | string | validate local file file.hash === expectHash , using expectHashAlgorithm if check pass the download will be skiped | ||
options.expectHashAlgorithm | string | 'md5' | the expect hash algorithm, default md5 | |
options.useChromeUa | Boolean | true | use user-agent of the Chrome Browser | |
options.useProxyEnv | Boolean | true | use proxy-agent module, will use http_proxy / https_proxy / all_proxy env variable | |
options.requestOptions | Object | custom request options, see request options |
- if finally the download is skiped, the return promise will resolve to
{skip: true}
- else it will resolve to
{skip: false}
options.retry.*
name | type | description |
---|---|---|
options.retry.times | Number | max retry times |
options.retry.timeout | Number / false | false disables timeout check, Number : max wait in ms |
options.retry.onerror | function(err, index) | when retry happens, this hook will be called, whether a normal error or a timeout error, index is 0 based |
more see https://github.com/magicdawn/promise.retry
ts types
// options for dl() / readUrl()
import type { DlOptions, ReadUrlOptions, ReadUrlOptionsWithEncoding } from 'dl-vampire'
// onpregress type, and progress arg type
import type { OnProgress, Progress } from 'dl-vampire'
Changelog
License
the MIT License http://magicdawn.mit-license.org
2.1.1
2 months ago
2.1.0
3 months ago
2.0.0
7 months ago
1.4.1
12 months ago
1.3.3
1 year ago
1.3.2
1 year ago
1.4.0
1 year ago
1.2.0
2 years ago
1.1.0
2 years ago
1.0.1
2 years ago
1.0.0
2 years ago
1.2.3
2 years ago
1.3.1
2 years ago
1.2.2
2 years ago
1.3.0
2 years ago
1.2.1
2 years ago
0.5.0
4 years ago
0.4.0
4 years ago
0.3.0
4 years ago
0.2.1
4 years ago
0.2.0
4 years ago
0.1.0
4 years ago
0.0.4
5 years ago
0.0.3
5 years ago
0.0.2
5 years ago
0.0.1
5 years ago