Sign In

stormlib-node-bindings

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

stormlib-node-bindings

Node.js bindings for StormLib to work with MPQ archives

latest
Source
npmnpm
Version
1.0.1
Version published
Maintainers
1
Created
Source

StormLib-Node 🌪️

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.

📋 Table of Contents

🚀 Installation

npm install stormlib-node-bindings

🛠️ Usage

Here's a basic example of how to use StormLib-Node:

import { Archive } from 'stormlib-node-bindings';

// Create a new MPQ archive
const archive = new Archive('new_archive.mpq', { create: true });

// Add a file to the archive
archive.addFile('local_file.txt', 'archived_file.txt');

// Extract a file from the archive
archive.extractFile('archived_file.txt', 'extracted_file.txt');

// List files in the archive
const files = archive.listFiles();
console.log('Files in the archive:', files);

// Don't forget to close the archive when you're done
archive.close();

📚 API

Archive class

Constructor: new Archive(filename, options)

  • filename: Path to the MPQ archive
  • options:
    • create: Boolean, set to true to create a new archive
    • flags: Optional flags for creating/opening the archive
    • maxFileCount: Maximum number of files (only used when creating a new archive)

Methods

  • addFile(localFilename, archivedName, flags = 0): Add a file to the archive
  • extractFile(archivedName, localFilename): Extract a file from the archive
  • listFiles(): List all files in the archive
  • close(): Close the archive

🧪 Development

To set up the project for development:

  • Clone the repository:

    git clone https://github.com/sebyx07/stormlib-node.git
    cd stormlib-node
    
  • Install dependencies:

    npm install
    
  • Compile StormLib:

    npm run compile
    
  • Build the Node.js addon:

    npm run install
    

🧬 Testing

To run the tests:

npm test

The tests use Mocha as the test runner and Chai for assertions.

🤝 Contributing

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

📜 License

This project is licensed under the MIT License. See the LICENSE file for details.

🙏 Acknowledgements

  • StormLib by Ladislav Zezula
  • All contributors who have helped with code, bug reports, and suggestions

Keywords

stormlib

FAQs

Package last updated on 23 Sep 2024

Related posts