1.0.1 โ€ข Published 10 months ago

stormlib-node-bindings v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

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:

  1. Clone the repository:

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

    npm install
  3. Compile StormLib:

    npm run compile
  4. 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.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. 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
1.0.1

10 months ago

1.0.0

10 months ago