Node.js bindings for StormLib to work with MPQ archives
npm install @firelands/stormlib-tsThis 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.
- 🔥 Firelands core Stormlib implementation
- 📖 Table of Contents
- 🚀 Installation
- ➿ Usage
- 🧰 API
- StormLib class
- Constructor: new StormLib(filename, options)
- Methods
- ⚛️ Development
- 🧮 Testing
- 🤝 Contributing
- 📜 License
- 🙏 Acknowledgements
``bash`
npm install @firelands/stormlib-ts
Here's a basic example of how to use stormlib-ts:
`javascript
import { StormLib } from '@firelands/stormlib-ts';
// Create a new MPQ archive
const storm = new StormLib('new_archive.mpq', { create: true });
// Add a file to the archive
storm.addFile('local_file.txt', 'archived_file.txt');
// Extract a file from the archive
storm.extractFile('archived_file.txt', 'extracted_file.txt');
// List files in the archive
const files = storm.listFiles();
console.log('Files in the archive:', files);
// Don't forget to close the archive when you're done
storm.close();
`
#### Constructor: new StormLib(filename, options)
- filename: Path to the MPQ archiveoptions
- :create
- : Boolean, set to true to create a new archiveflags
- : Optional flags for creating/opening the archivemaxFileCount
- : Maximum number of files (only used when creating a new archive)
#### Methods
- addFile(localFilename, archivedName, flags): 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:
1. Clone the repository:
``
git clone https://github.com/FirelandsProject/Stormlib-ts.git
cd Stormlib-ts
2. Install dependencies:
``
pnpm i
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.
1. Fork the repository
2. Create your feature branch (git checkout -b feat/my-feature)git commit -m 'feat: some changes in the feature'
3. Commit your changes ()git push origin feat/my-feature
4. Push to the branch ()
5. Open a Pull Request
This project is licensed under the AGPL-3.0-only` License. See the LICENSE file for details.
- StormLib by Ladislav Zezula
- All contributors who have helped with code, bug reports, and suggestions