Skip to content

Simple archive is very verbose #780

@sharoninator

Description

@sharoninator

Say I want to compress a directory. In the example, I am to do it as so:

// require modules
const fs = require('fs');
const archiver = require('archiver');

// create a file to stream archive data to.
const output = fs.createWriteStream(__dirname + '/example.zip');
const archive = archiver('zip', {
  zlib: { level: 9 } // Sets the compression level.
});

// pipe archive data to the file
archive.pipe(output);

// append files from a sub-directory and naming it `new-subdir` within the archive
archive.directory('subdir/', 'new-subdir');
archive.finalize();

This is quite verbose, just to compress a directory. Could there be a helper function employed to make this one function call? It can detect whether the thing its compressing is a file or a directory, and what the compression algorithm should be based on the filetype of the output, and for the callback functions it could just have default print messages. For the other parameters, like the compression level, it could also have default params.
For example, instead of the code above, it could look something like:

const fs = require('fs');
const archiver = require('archiver');
archiver.compress('subdir/', 'example.zip') // .zip means zip compression.

Thoughts? Is this an issue people would be interested in me submitting a PR for?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions