mirror of
https://github.com/github/codeql-action.git
synced 2025-12-31 19:50:32 +08:00
* Bump the npm group with 4 updates Bumps the npm group with 4 updates: [adm-zip](https://github.com/cthackers/adm-zip), [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js), [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `adm-zip` from 0.5.14 to 0.5.15 - [Release notes](https://github.com/cthackers/adm-zip/releases) - [Changelog](https://github.com/cthackers/adm-zip/blob/master/history.md) - [Commits](https://github.com/cthackers/adm-zip/compare/v0.5.14...v0.5.15) Updates `@eslint/js` from 9.8.0 to 9.9.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/commits/v9.9.0/packages/js) Updates `@typescript-eslint/eslint-plugin` from 8.0.1 to 8.1.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.1.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.0.1 to 8.1.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.1.0/packages/parser) --- updated-dependencies: - dependency-name: adm-zip dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm - dependency-name: "@eslint/js" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm ... Signed-off-by: dependabot[bot] <support@github.com> * Update checked-in dependencies --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
88 lines
2.7 KiB
Markdown
88 lines
2.7 KiB
Markdown
# ADM-ZIP for NodeJS
|
|
|
|
ADM-ZIP is a pure JavaScript implementation for zip data compression for [NodeJS](https://nodejs.org/).
|
|
|
|
<a href="https://github.com/cthackers/adm-zip/actions/workflows/ci.yml">
|
|
<img src="https://github.com/cthackers/adm-zip/actions/workflows/ci.yml/badge.svg" alt="Build Status">
|
|
</a>
|
|
|
|
# Installation
|
|
|
|
With [npm](https://www.npmjs.com/) do:
|
|
|
|
$ npm install adm-zip
|
|
|
|
**Electron** file system support described below.
|
|
|
|
## 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
|
|
|
|
```javascript
|
|
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](https://github.com/cthackers/adm-zip/wiki).
|
|
|
|
## Electron original-fs
|
|
|
|
ADM-ZIP has supported electron **original-fs** for years without any user interractions but it causes problem with bundlers like rollup etc. For continuing support **original-fs** or any other custom file system module. There is possible specify your module by **fs** option in ADM-ZIP constructor.
|
|
|
|
Example:
|
|
|
|
```javascript
|
|
const AdmZip = require("adm-zip");
|
|
const OriginalFs = require("original-fs");
|
|
|
|
// reading archives
|
|
const zip = new AdmZip("./my_file.zip", { fs: OriginalFs });
|
|
.
|
|
.
|
|
.
|
|
```
|