zip-unzip-promise
ZIP圧縮展開
Last updated a year ago by honeo .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install zip-unzip-promise 
SYNC missed versions from official npm registry.

zip-unzip-promise

なにこれ

ZIP圧縮・展開など。

使い方

$ npm i zip-unzip-promise
const {zip, unzip, list} = require('zip-unzip-promise');

API

  • 出力先について
    • ファイルが既にあればスキップする。
    • ディレクトリがなければ作成する。
    • node-sanitize-filenameで正規化する。

options

key type default description
encode string "utf8" 書庫内のパスに使われている文字コード。"auto"で自動検出。 文字コード名
filter function 出力するコンテンツ毎にobjectを引数に実行され、falseが返ればskipする。
overwrite boolean false 上書きを許可するか。

.zip(input, outputFilePath [, options])

引数1パスのファイル・ディレクトリまたはそれらの配列を元に圧縮する。 作成した圧縮ファイルの絶対パスを引数に解決するpromiseを返す。

// file => archive
const zipPath = await zip('hoge.txt', 'hoge.zip');

// dir => dir/archive
const zipPath = await zip('hoge', 'output/hoge.zip');

// dir & file => archive
const zipPath = await zip([
	'./hoge', './fuga.ext'
], './piyo.zip');



/*
	options
*/

// overwrite: all
const zipPath = await zip('foo.ext', 'bar.zip', {
	overwrite: true
});

// overwrite: if old
const zipPath = await zip('foo.ext', 'bar.zip', {
	overwrite: true,
	filter({path, type}){
		const stats = fs.statSync(path);
		return stats.birthtime.getFullYear() < new Date().getFullYear();
	}
});

.unzip(inputFilePath, outputDirPath [, options])

引数1パスの圧縮ファイルを展開する。 展開先ディレクトリの絶対パスを引数に解決するpromiseを返す。

// archive => contents
const dirPath = await unzip('./hoge.zip', './');

// archive => dir/contents
const dirPath = await unzip('./hoge.zip', './output');



/*
	options
*/

// overwrite
const dirPath = await unzip('foo.zip', 'bar', {
	overwrite: true
});

// output: *.txt file only
const dirPath = await unzip('foo.zip', 'bar', {
	filter({path, type}){
		return type==='File' && /\.txt$/.test(path);
	}
});

// for not UTF-8
const dirPath = await unzip('archive.zip', './', {
	encode: 'auto' // or "sjis", "ascii"...
});

.list(inputFilePath, [, options])

引数1パスの圧縮ファイル内のコンテンツ一覧を配列で取得する。 取得した配列を引数に解決するpromiseを返す。

// [...pathString]
const arr = await list('hoge.zip');

// options
const arr = await list('hoge.zip', {encode: 'sjis'});

Breaking Changes

v1 => v2

  • .zip()
    • 引数2が必須化。
  • .unzip()
    • 引数2が必須化。

Current Tags

  • 2.1.1                                ...           latest (a year ago)

10 Versions

  • 2.1.1                                ...           a year ago
  • 2.1.0                                ...           a year ago
  • 2.0.2                                ...           a year ago
  • 2.0.1                                ...           a year ago
  • 2.0.0                                ...           a year ago
  • 1.1.0                                ...           3 years ago
  • 1.0.3                                ...           3 years ago
  • 1.0.2                                ...           3 years ago
  • 1.0.1                                ...           3 years ago
  • 1.0.0                                ...           3 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 16
Dependencies (9)
Dev Dependencies (1)

Copyright 2014 - 2017 © taobao.org |