dl-tar
A Node.js module to download and extract a tar archive with the Observable API
const readdirSync = ;const dlTar = ; const url = 'https://****.org/my-archive.tar';/* my-archive ├── LICENSE ├── README.md ├── INSTALL └── bin └── app.exe*/ ;
✓ bin/
✓ bin/app.exe
✓ README.md
✓ LICENSE
✓ install
Completed.
Installation
npm install dl-tar
API
const dlTar = ;
dlTar(tarArchiveUrl, extractDir [, options])
tarArchiveUrl: string
extractDir: string
(a path where the archive will be extracted)
options: Object
Return: Observable
(zenparsing's implementation)
When the Observable
is subscribed, it starts to download the tar archive, extract it and successively send extraction progress to its Observer
.
When the Subscription
is unsubscribed, it stops downloading and extracting.
It automatically unzips gzipped archives.
Progress
Every progress object have two properties entry
and response
.
entry
Type: tar.ReadEntry
An instance of node-tar's ReadEntry
object.
For example you can get the progress of each entry as a percentage by 100 - progress.entry.remain / progress.entry.size * 100
.
;
0.0 %
0.1 %
0.3 %
0.4 %
︙
99.6 %
99.8 %
99.9 %
100.0 %
>> OK bin/app.exe
0.0 %
0.1 %
0.2 %
0.3 %
︙
response
Type: Object {bytes: <number>, headers: <Object>, url: <string>}
response.url
is the final redirected URL of the request, response.headers
is a response header object derived from http.IncomingMessage
, and response.bytes
is a total content length of the downloaded archive. content-length
header will be converted to number
if it's string
.
Options
You can pass options to Request and node-tar's Unpack
constructor. Note that:
onentry
option is not supported.strict
option defaults totrue
, notfalse
.strip
option defaults to1
, not0
. That means the top level directory is stripped off by default.
License
ISC License © 2017 - 2018 Shinnosuke Watanabe