UNPKG

xcom2charpool

Version:

Library for reading, manipulating, and managing XCOM 2 character pool binary files, supporting both browser and Node.js environments.

36 lines (35 loc) 1.79 kB
"use strict"; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var _StructArrayElement_codec; Object.defineProperty(exports, "__esModule", { value: true }); exports.StructArrayElement = void 0; const StructPropertyValue_1 = require("./StructPropertyValue"); const ObjectProperty_1 = require("../ObjectProperty"); const CodecError_1 = require("../../Errors/CodecError"); const BaseCodec_1 = require("../../BaseCodec"); /** * Array element codec for struct entries in ArrayProperty payloads. */ class StructArrayElement extends BaseCodec_1.BaseCodec { constructor(type) { super(); this.type = type; _StructArrayElement_codec.set(this, new ObjectProperty_1.ObjectProperty()); } read(reader, ctx) { const obj = __classPrivateFieldGet(this, _StructArrayElement_codec, "f").read(reader, 0, ctx); return new StructPropertyValue_1.StructPropertyValue(this.type, obj); } write(writer, value, ctx) { if (value.type !== this.type) { throw new CodecError_1.CodecError(`Struct array element type mismatch: expected ${this.type}, got ${value.type}`, this.fullPath(ctx)); } __classPrivateFieldGet(this, _StructArrayElement_codec, "f").write(writer, value.value, ctx); } } exports.StructArrayElement = StructArrayElement; _StructArrayElement_codec = new WeakMap();