https://github.com/peerigon/unzip-crx
Unzip chrome extension files
https://github.com/peerigon/unzip-crx
Last synced: 11 months ago
JSON representation
Unzip chrome extension files
- Host: GitHub
- URL: https://github.com/peerigon/unzip-crx
- Owner: peerigon
- License: mit
- Created: 2016-02-29T11:59:26.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2023-07-10T02:55:05.000Z (almost 3 years ago)
- Last Synced: 2025-08-09T18:21:39.150Z (11 months ago)
- Language: JavaScript
- Size: 59.6 KB
- Stars: 52
- Watchers: 13
- Forks: 19
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# unzip-crx
**Unzip chrome extension files**
[](https://travis-ci.org/peerigon/unzip-crx) [](https://david-dm.org/peerigon/unzip-crx) [](https://coveralls.io/github/peerigon/unzip-crx?branch=master)
If you want to unzip [Chrome extension files](https://developer.chrome.com/extensions) (\*.crx) you might have the problem that your unzip lib claims that the file header is malformed. This is due to that Chrome [adds some extra information](https://developer.chrome.com/extensions/crx) for identifying crx files. `unzip-crx` handles those additional headers and unzips as usual.
This lib is highly inspired by [crx2ff](https://github.com/abarreir/crx2ff) from [abarreir](https://github.com/abarreir) and [crxviewer](https://github.com/Rob--W/crxviewer) from [Rob Wu](https://github.com/Rob--W), thanks!
## Installation
```
$ npm install unzip-crx
```
## Example
```js
const unzip = require("unzip-crx");
const crxFile = "./this-chrome-extension.crx";
unzip(crxFile).then(() => {
console.log("Successfully unzipped your crx file..");
});
```
## API
### unzip(file[, destination])
Resolves with a Promise if the file was unzipped successfully, throws otherwise (use `.catch()`).
## Contributing
From opening a bug report to creating a pull request: **every contribution is appreciated and welcome**. If you're planing to implement a new feature or change the api please create an issue first. This way we can ensure that your precious work is not in vain.
All pull requests should have 100% test coverage (with notable exceptions) and need to pass all tests.
- Call `npm test` to run the unit tests
- Call `npm run coverage` to check the test coverage (using [istanbuljs/nyc](https://github.com/istanbuljs/nyc))
## LICENSE
MIT
## Sponsors
[
](https://peerigon.com)