tar-to-file
Decompress a single-file tar archive with the Observable API
const readFileSync = ;const tarToFile = ; const subscription = ; subscription;
Installation
npm install tar-to-file
API
const tarToFile = ;
tarToFile(tarPath, filePath [, options])
tarPath: string
(path of the archive file)
filePath: string
(file path of the extracted contents)
options: Object
Return: Observable
(zenparsing's implementation)
When the Observable
is subscribed, it starts to extract a file from a single-file archive and successively send extraction progress to its Observer
.
Every progress object have two properties header
and bytes
. header
is a header of the entry, and bytes
is the total processed size of the extraction.
For example you can get the progress as a percentage by (progress.bytes / progress.header.size || 0) * 100
.
;
0.0 %
0.1 %
0.3 %
0.4 %
︙
99.6 %
99.8 %
99.9 %
100.0 %
Completed
Note that tar-to-file doesn't support any archives that:
- contains multiple entries
- contains a non-file, for example directory and symlink entries
; ;
Options
You can pass options to tar-fs's extract()
method and fs.createWriteStream()
. Note that:
strip
,filter
andignore
options are not supported.fs
option defaults to graceful-fs for more stability.
Additionally, you can use the following:
tarTransform
Type: Stream
A transform stream to modify the archive before extraction.
For example, pass zlib.createGunzip()
and you can decompress a gzipped tar.
const tarToFile = ;const createGunzip = ; const gunzipStream = ; const observable = ;
Related project
- file-to-tar – Inverse of this module. Create a tar archive from a single file
License
ISC License © 2017 - 2018 Shinnosuke Watanabe