UNPKG

beth-parser

Version:

Parser library for Bethesda's Creation Engine data files

57 lines 2.35 kB
"use strict"; exports.__esModule = true; var fs_1 = require("fs"); var StringsParser_1 = require("./StringsParser"); var path_1 = require("path"); /** * Node.js based strings file reader (high-level API for parser). */ var StringsReader = /** @class */ (function () { function StringsReader() { this.strings = {}; } /** * Read strings from the given data buffer. * @param buffer Buffer with strings data. * @param padded Whether strings are stored with size padding. * @param encoding String encoding. */ StringsReader.prototype.readBuffer = function (buffer, padded, encoding) { var _this = this; if (padded === void 0) { padded = false; } if (encoding === void 0) { encoding = "utf-8"; } var stringsParser = new StringsParser_1["default"](buffer, padded, encoding); stringsParser.parse(function (id, text) { return _this.strings[id] = text; }); return this.strings; }; /** * Read strings from the specified file. * @param filename File system path to a strings file. * @param encoding String encoding. */ StringsReader.prototype.readFile = function (filename, encoding) { if (encoding === void 0) { encoding = "utf-8"; } var buffer = fs_1.readFileSync(filename); var padded = path_1.extname(filename).toUpperCase() !== ".STRINGS"; return this.readBuffer(buffer, padded, encoding); }; /** * Read strings for the specified modfile. * @param filename File system path to a modfile. * @param language Strings file language code. * @param encoding String encoding. */ StringsReader.prototype.readByModfile = function (filename, language, encoding) { var _this = this; if (encoding === void 0) { encoding = "utf-8"; } var name = path_1.basename(filename).replace(/\.[^\.]+$/, "") + "_" + language; var path = path_1.join(path_1.dirname(filename), "Strings"); [".STRINGS", ".DLSTRINGS", ".ILSTRINGS"].forEach(function (extension) { _this.readFile(path_1.join(path, name + extension), encoding); }); return this.strings; }; return StringsReader; }()); exports["default"] = StringsReader; //# sourceMappingURL=StringsReader.js.map