work with files inside archives like with regular files
npm install redzip[NPMIMGURL]: https://img.shields.io/npm/v/redzip.svg?style=flat
[BuildStatusURL]: https://github.com/coderaiser/redzip/actions
[BuildStatusIMGURL]: https://github.com/coderaiser/redzip/workflows/CI/badge.svg
[LicenseIMGURL]: https://img.shields.io/badge/license-MIT-317BF9.svg?style=flat
[NPMURL]: https://npmjs.org/package/redzip "npm"
[BuildStatusURL]: https://travis-ci.org/coderaiser/redzip "Build Status"
[LicenseURL]: https://tldrlegal.com/license/mit-license "MIT License"
[CoverageURL]: https://coveralls.io/github/coderaiser/redzip?branch=master
[CoverageIMGURL]: https://coveralls.io/repos/coderaiser/redzip/badge.svg?branch=master&service=github
Work with zip archives as it is regular files and directories.
```
npm i redzip
- path - stringobject
- options - can contain:sort
- - sort by: name, size, dateorder
- - "asc" or "desc" for ascending and descending order (default: "asc")type
- - when "raw" returns not formatted resultroot
- - root directory to cut from result
#### Example
`js
const sort = 'size';
const order = 'desc';
const type = 'raw';
const dirPath = '/home/coderaiser/hello.zip/hello/';
const path = '/home/coderaiser/hello.zip/hello.txt';
import * as redzip from 'redzip';
const dirStream = await redzip.read(dirPath, {
type,
sort,
order,
});
console.log(dirStream.type);
// outputs
'directory';
console.log(dirStream.contentLength);
// outputs
280;
dirStream.pipe(process.stdout);
// outputs
({
path: '/',
files: [{
name: 'redzip.js',
size: 4735,
date: 1_377_248_899_000,
owner: 0,
mode: 0,
}, {
name: 'readify.js',
size: 3735,
date: 1_377_248_899_000,
owner: 0,
mode: 0,
}],
});
dirStream.files;
// returns
[{
name: 'redzip.js',
size: 4735,
date: 1_377_248_899_000,
owner: 0,
mode: 0,
}, {
name: 'readify.js',
size: 3735,
date: 1_377_248_899_000,
owner: 0,
mode: 0,
}];
dirStream.path;
// returns
'/';
const fileStream = await redzip.read(path);
console.log(fileStream.type);
// outputs
'file';
fileStream.pipe(process.stdout);
// outputs
'hello';
console.log(fileStream.contentLength);
// outputs
6;
`
- path - stringobject
- options - can contain:type
- - when "raw" returns not formatted result
`js
const fileStream = readSize('/hello/world.zip/readme.md');
fileStream.pipe(process.stdout);
// outputs
'10kb';
fileStream.contentLength; // 4
`
- path - string
`js
const stat = readStat('/hello/world.zip/readme.md');
// returns
({
date: '2021-01-18T22:00:00.000Z',
mode: 1_107_099_648,
name: 'readme.md',
owner: 0,
size: 0,
type: 'file',
});
`
When you need to save string, or Buffer use Readable.from.
- path - stringstream
- data - object
- options - can contain:unzip
- - unzip file content before writingmode
- - set permissions mode (optional)
#### Example
`js
import {Readable} from 'node:stream';
import {createGzip} from 'node:zlib';
import {write} from 'redzip';
import pullout from 'pullout';
const dirPath = '/home/coderaiser/hello.zip/hello/';
await write(dirPath);
// returns
'save: ok("hello")';
const path = '/home/coderaiser/hello.zip/hello.txt';
const writeStream = await write(path, Readable.from('hello'));
await pullout(writeStream);
// returns
'save: ok("hello")';
await pullout(await read(path));
// returns
'hello';
const zipStream = Readable
.from('hello')
.pipe(createGzip());
await write(path, zipStream, {
unzip: true,
});
const readStream = await read(path);
await pullout(readStream);
// returns
'hello';
`
- path - string
#### Example
`js
import {remove} from 'redzip';
import pullout from 'pullout';
const dirPath = '/home/coderaiser/hello.zip/hello/';
await remove(dirPath);
const path = '/home/coderaiser/hello.zip/hello.txt';
await remove(path);
`
- path - string
#### Example
`js
import {list} from 'redzip';
const dirPath = '/home/coderaiser/hello.zip/hello/';
await list(dirPath);
// returns
[
'/Users/coderaiser/hello.zip/hello/world.txt',
];
`
- readify - read directory content with file attributes: size, date, owner, mode
- readbox - read file or directory from dropbox`
MIT