1.0.8 • Published 2 years ago

node-unar v1.0.8

Weekly downloads
61
License
MIT
Repository
github
Last release
2 years ago

node-unar

NPM

Dependencies Status Node.js CI codecov MaintainabilityRelease

ESM front-end to unar and lsar a command line tool. The universal un-archiver/unpacker to a lot of formats: .zip, zipx, rar, 7z, tar, gzip, bzip2, lzma, cab, msi, cpio, xar, exe, etc....

The necessary cli tool lsar and unar, will be downloaded to package directory at install time, for Windows amd macOS. If your host is Linux, node-sys will be used to install unar onto your system.

Usage

//ESM Node JS v12+
import { list, unpack } from 'node-unar';

// list only:
list(archiveFile, options)
  .then((fileListArray) => {
  })
  .catch((anyError) => {
  });;

// unpack:
unpack(archiveFile, options | outputDirectory)
  .progress((eachFle) => {
  })
  .then((results) => {
    let type = results.type;
    let fileList = results.files;
    let outputDirectory = results.directory;
  })
  .catch((anyError) => {
  });

// unpack: only requested files/directories
unpack(archiveFile, outputDirectory, file | [files], options)
  .progress((eachFle) => {
  })
  .then((results) => {
    let type = results.type;
    let fileList = results.files;
    let outputDirectory = results.directory;
  })
  .catch((anyError) => {
  });

Examples

Example: unpack file

//ESM Node JS v12+
import  { unpack } from 'node-unar';

unpack('test/abc.rar', 'out')
  .progress((files) => {
    console.log('files', files);
  })
  .then((results) => {
    console.log('Archive type: ', results.type);
    console.log('Archive files', results.files);
    console.log('Archive output directory', results.directory);
  })
  .catch((err) => {
    console.error(err);
  });
});

Example: list content

//ESM Node JS v12+
import { list } from 'node-unar';

list('test/abc.rar')
  .then((files) => {
    console.log('files', files);
  })
  .catch((err) => {
    console.error(err);
  });

Options

KeyPossible valuesComment
quiettrue/false (default)true will reduce logging for unpacking
targetDir\The directory to write the contents of the archive to. Defaults to the current directory.
files\Only unpack this list of files or directories.
forceOverwritetrue/false (default)if null, tmp dir will created automatically
forceDirectorytrue/false/undefinedAlways create a containing directory for the contents of the unpacked archive. By default, a directory is created if there is more than one top-level file or folder.
noDirectorytrue/false/undefinedNever create a containing directory for the contents of the unpacked archive.
noRecursiontrue/false/undefinedDo not attempt to extract archives contained in other archives. For instance, when unpacking a .tar.gz file, only unpack the .gz file and not its contents.
copyTimetrue/false/undefinedCopy the file modification time from the archive file to the containing directory, if one is created.
password\The password to use for decrypting protected archives.
passwordEncoding\The encoding to use for the password for the archive, when it is not known. If not specified, then either the encoding given by the -encoding option or the auto-detected encoding is used.
encoding\The encoding to use for filenames in the archive, when it is not known. If not specified, the program attempts to auto-detect the encoding used. Use "help" or "list" as the argument to give