UNPKG

storm-replay

Version:

NodeJS wrapper for StormLib (https://github.com/ladislav-zezula/StormLib)

75 lines (55 loc) 2.08 kB
storm-replay ============ NodeJS wrapper for StormLib (https://github.com/ladislav-zezula/StormLib) for parsing Heroes of the Storm replay files (`.StormReplay`). This is a backend library designed for speedy extraction of files. In tests against the javascript library, extraction times improved nearly 60%. # API ## .getHeader(Archive) Retrieve the MPQ Header information for the `Archive`. This header includes the all important build information for parsing. The object returned contains the full header as `.header.data` and the parsed header as `.content.data`. You will most likely want `.content.data`. The other data provided, `.err` and `.content.size`, is there for validation. ```javascript return { err: (Header.length === undefined), header: { data: Header, size: Header.length }, content: { data: Header.slice(16, 16 + Header.readUInt32LE(12)), size: Header.readUInt32LE(12) } }; ``` ## .extractFile(Archive, File) Extract `File` from `Archive` as a buffer. The object returned has the data you want as `.content.data`. The other data provided, `.err` and `.content.size`, is there for validation. ```javascript return { err: (File.length === undefined), content: { data: File, size: File.length } }; ``` ## .removeMessages(Archive) Remove `replay.message.events` from the archive. Chat messages may be toxic, offensive, taken out of context or otherwise not fit for human consumption. This sanitation method provides some protection to ensure a player's actions speak louder than his or her words. Returns `true` if there are no messages in the file, `false` if there was an issue. ```javascript return bool; ``` # TODO * Currently, the build is only working on OSX and Linux. # References * http://www.zezula.net/en/mpq/stormlib.html * http://sagivo.com/post/130207525903/nodejs-addons * http://www.benfarrell.com/2013/01/03/c-and-node-js-an-unholy-combination-but-oh-so-right/