StormLib-Node is a Node.js package that provides bindings for the StormLib C++ library, allowing you to work with MPQ (Mo'PaQ) archives in your Node.js projects for World of Warcraft and other Blizzard games.
npm install stormlib-node-bindingsHere's a basic example of how to use StormLib-Node:
import{Archive}from'stormlib-node-bindings';// Create a new MPQ archiveconstarchive=newArchive('new_archive.mpq',{create: true});// Add a file to the archivearchive.addFile('local_file.txt','archived_file.txt');// Extract a file from the archivearchive.extractFile('archived_file.txt','extracted_file.txt');// List files in the archiveconstfiles=archive.listFiles();console.log('Files in the archive:',files);// Don't forget to close the archive when you're donearchive.close();filename: Path to the MPQ archiveoptions:create: Boolean, set totrueto create a new archiveflags: Optional flags for creating/opening the archivemaxFileCount: Maximum number of files (only used when creating a new archive)
addFile(localFilename, archivedName, flags = 0): Add a file to the archiveextractFile(archivedName, localFilename): Extract a file from the archivelistFiles(): List all files in the archiveclose(): Close the archive
To set up the project for development:
Clone the repository:
git clone https://github.com/sebyx07/stormlib-node.git cd stormlib-nodeInstall dependencies:
npm installCompile StormLib:
npm run compileBuild the Node.js addon:
npm run install
To run the tests:
npm test
The tests use Mocha as the test runner and Chai for assertions.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License. See the LICENSE file for details.
- StormLib by Ladislav Zezula
- All contributors who have helped with code, bug reports, and suggestions