Socket
Socket
Sign inDemoInstall

adm-zip

Package Overview
Dependencies
0
Maintainers
1
Versions
36
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    adm-zip

Javascript implementation of zip for nodejs with support for electron original-fs. Allows user to create or extract zip files both in memory or to/from disk


Version published
Weekly downloads
4.4M
decreased by-0.84%
Maintainers
1
Install size
101 kB
Created
Weekly downloads
 

Package description

What is adm-zip?

The adm-zip npm package is a JavaScript library for ZIP archive manipulation. It allows users to work with ZIP files directly from their Node.js applications. With adm-zip, you can create, extract, and update ZIP archives without relying on external tools.

What are adm-zip's main functionalities?

Creating ZIP archives

This feature allows you to create a new ZIP archive and add files to it from the local filesystem. The 'writeZip' method is then used to write the archive to disk.

const AdmZip = require('adm-zip');
const zip = new AdmZip();
zip.addLocalFile('/path/to/file.txt');
zip.writeZip('/path/to/archive.zip');

Extracting ZIP archives

This feature enables you to extract the contents of a ZIP archive to a specified directory on the filesystem. The second parameter of 'extractAllTo' determines whether to overwrite existing files.

const AdmZip = require('adm-zip');
const zip = new AdmZip('/path/to/archive.zip');
zip.extractAllTo('/path/to/extract/', true);

Reading ZIP archives

This feature is used to read the contents of a ZIP archive and list its entries. You can iterate over the entries to get information about each file or directory in the archive.

const AdmZip = require('adm-zip');
const zip = new AdmZip('/path/to/archive.zip');
const zipEntries = zip.getEntries();
zipEntries.forEach((zipEntry) => {
  console.log(zipEntry.toString()); // outputs zip entries information
});

Updating ZIP archives

This feature allows you to update the contents of an existing file within a ZIP archive. The 'updateFile' method takes the filename and the new content as a Buffer.

const AdmZip = require('adm-zip');
const zip = new AdmZip('/path/to/archive.zip');
zip.updateFile('fileInsideZip.txt', Buffer.from('new content'));
zip.writeZip();

Other packages similar to adm-zip

Readme

Source

ADM-ZIP for NodeJS with added support for electron original-fs

ADM-ZIP is a pure JavaScript implementation for zip data compression for NodeJS.

Installation

With npm do:

$ npm install adm-zip

What is it good for?

The library allows you to:

  • decompress zip files directly to disk or in memory buffers
  • compress files and store them to disk in .zip format or in compressed buffers
  • update content of/add new/delete files from an existing .zip

Dependencies

There are no other nodeJS libraries that ADM-ZIP is dependent of

Examples

Basic usage

var AdmZip = require("adm-zip");

// reading archives
var zip = new AdmZip("./my_file.zip");
var password = "1234567890";
var zipEntries = zip.getEntries(); // an array of ZipEntry records - add password parameter if entries are password protected

zipEntries.forEach(function (zipEntry) {
    console.log(zipEntry.toString()); // outputs zip entries information
    if (zipEntry.entryName == "my_file.txt") {
        console.log(zipEntry.getData().toString("utf8"));
    }
});
// outputs the content of some_folder/my_file.txt
console.log(zip.readAsText("some_folder/my_file.txt"));
// extracts the specified file to the specified location
zip.extractEntryTo(/*entry name*/ "some_folder/my_file.txt", /*target path*/ "/home/me/tempfolder", /*maintainEntryPath*/ false, /*overwrite*/ true);
// extracts everything
zip.extractAllTo(/*target path*/ "/home/me/zipcontent/", /*overwrite*/ true);

// creating archives
var zip = new AdmZip();

// add file directly
var content = "inner content of the file";
zip.addFile("test.txt", Buffer.from(content, "utf8"), "entry comment goes here");
// add local file
zip.addLocalFile("/home/me/some_picture.png");
// get everything as a buffer
var willSendthis = zip.toBuffer();
// or write everything to disk
zip.writeZip(/*target file name*/ "/home/me/files.zip");

// ... more examples in the wiki

For more detailed information please check out the wiki.

Build Status

Keywords

FAQs

Last updated on 14 Mar 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc