UNPKG

beth-parser

Version:

Parser library for Bethesda's Creation Engine data files

42 lines 1.52 kB
"use strict"; exports.__esModule = true; var ModfileDefs_1 = require("../ModfileDefs"); var entry_1 = require("../entry"); /** * Default collecting child handler implementation. */ var ModfileHandler = /** @class */ (function () { function ModfileHandler() { /** * Modfile root entry. */ this.root = new entry_1.GroupEntry(ModfileDefs_1.GroupType.ROOT, 0); /** * Children array stack. */ this.stack = [this.root.children]; } ModfileHandler.prototype.handleGroup = function (type, _size, label, parse) { // Create group entry var group = new entry_1.GroupEntry(type, label); // Register in parent this.stack[this.stack.length - 1].push(group); // Parse children this.stack.push(group.children); parse(this); this.stack.pop(); }; ModfileHandler.prototype.handleRecord = function (type, size, flags, formId, parse) { // Prepare children array var record = new entry_1.RecordEntry(type, flags, formId); // Register in parent this.stack[this.stack.length - 1].push(record); // Parse fields parse(function (type, size, buffer, offset) { record.fields.push(new entry_1.FieldEntry(type, Buffer.from(buffer.subarray(offset, offset + size)))); }); }; return ModfileHandler; }()); exports["default"] = ModfileHandler; //# sourceMappingURL=ModfileHandler.js.map