0.3.1 • Published 11 months ago

@firelands/stormlib-ts v0.3.1

Weekly downloads
-
License
AGPL-3.0-only
Repository
github
Last release
11 months ago

🔥 Firelands core Stormlib implementation

This 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 @firelands/stormlib-ts

➿ Usage

Here's a basic example of how to use stormlib-ts:

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();

🧰 API

StormLib class

Constructor: new StormLib(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): 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/FirelandsProject/Stormlib-ts.git
    cd Stormlib-ts
  2. Install dependencies:

    pnpm i

🧮 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 feat/my-feature)
  3. Commit your changes (git commit -m 'feat: some changes in the feature')
  4. Push to the branch (git push origin feat/my-feature)
  5. Open a Pull Request

📜 License

This project is licensed under the AGPL-3.0-only License. See the LICENSE file for details.

🙏 Acknowledgements

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

11 months ago

0.3.0

11 months ago

0.2.5

11 months ago

0.2.4

11 months ago

0.2.3

11 months ago

0.2.2

11 months ago

0.2.0

11 months ago

0.1.0

11 months ago