Giter VIP home page Giter VIP logo

node-archiver's Introduction

Archiver v0.7.0 Build Status

Creates Archives (Zip, Tar) via Node Streams.

NPM

Install

npm install archiver --save

You can also use npm install https://github.com/ctalkington/node-archiver/archive/master.tar.gz to test upcoming versions.

Archiver

create(format, options)

Creates an Archiver instance based on the format (zip, tar, etc) passed. Parameters can be passed directly to Archiver constructor for convenience.

registerFormat(format, module)

Registers an archive format. Format modules are essentially transform streams with a few required methods. They will be further documented once a formal spec is in place.

Instance Methods

append(input, data)

Appends an input source (text string, buffer, or stream) to the instance. When the instance has received, processed, and emitted the input, the entry event is fired.

Replaced #addFile in v0.5.

archive.append('string', { name:'string.txt' });
archive.append(new Buffer('string'), { name:'buffer.txt' });
archive.append(fs.createReadStream('mydir/file.txt'), { name:'stream.txt' });

bulk(mappings)

Appends multiple files from passed array of src-dest file mappings, based on Grunt's "Files Array" format. A lazystream wrapper is used to prevent issues with open file limits.

Globbing patterns and multiple properties are supported through use of the file-utils package, based on Grunt's file utilities. Please note that multiple src files to single dest file (ie concat) is not supported.

The data property can be set (per src-dest mapping) to define file data for matched files.

archive.bulk([
  { src: ['mydir/**'], data: { date: new Date() } },
  { expand: true, cwd: 'mydir', src: ['**'], dest: 'newdir' }
]);

file(filepath, data)

Appends a file given its filepath. Uses a lazystream wrapper to prevent issues with open file limits. When the instance has received, processed, and emitted the file, the entry event is fired.

archive.file('mydir/file.txt', { name:'file.txt' });

finalize()

Finalizes the instance. You should listen for the end/close/finish of the destination stream to properly detect completion.

pointer()

Returns the current byte length emitted by archiver. Use this in your end callback to log generated size.

Events

Each instance is a node Transform stream and inherits all its events. Events listed here are custom.

entry

Fired when the input has been received, processed, and emitted. Passes file data as first argument.

Zip

Options

comment string

Sets the zip comment.

forceUTC boolean

If true, forces the file date and time to UTC. Helps with testing across timezones.

store boolean

If true, all file contents will be archived without compression by default.

zlib object

Passed to node's zlib module to control compression. Options may vary by node version.

File Data

name string required

Sets the file name including internal path.

date string|Date

Sets the file date. This can be any valid date string or instance. Defaults to current time in locale.

store boolean

If true, file contents will be archived without compression.

comment string

Sets the file comment.

mode number

Sets the file permissions. (experimental)

Tar

Options

recordSize number

Sets the size (in bytes) of each record in a block, default is 512 (for advanced users only).

recordsPerBlock number

Sets the number of records in a block, default is 20 (for advanced users only).

gzip boolean

Compresses the tar archive using gzip, default is false.

gzipOptions object

Passed to node's zlib module to control compression. Options may vary by node version.

File Data

name string required

Sets the file name including internal path.

date string|Date

Sets the file date. This can be any valid date string or instance. Defaults to current time in locale.

mode number

Sets the file permissions. Defaults to 0664.

Things of Interest

Credits

Concept inspired by Antoine van Wel's node-zipstream.

Tar inspired by isaacs's node-tar.

node-archiver's People

Contributors

ctalkington avatar danmilon avatar davglass avatar jstuckey avatar mcicoria avatar petrosagg avatar tj avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.