UNPKG

@swtc/serializer

Version:
35 lines 1.2 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const SerializedType_1 = __importDefault(require("./SerializedType")); const STArray = new SerializedType_1.default({ id: 15, serialize(so, val) { for (let i = 0, l = val.length; i < l; i++) { const keys = Object.keys(val[i]); if (keys.length !== 1) { throw Error("Cannot serialize an array containing non-single-key objects"); } const field_name = keys[0]; const value = val[i][field_name]; this.customSerialize(so, field_name, value); } // Array ending marker this.STInt8.serialize(so, 0xf1); }, parse(so) { const output = []; while (so.peek(1)[0] !== 0xf1) { const keyval = this.customParse(so); const obj = {}; obj[keyval[0]] = keyval[1]; output.push(obj); } so.read(1); return output; } }); exports.default = STArray; //# sourceMappingURL=STArray.js.map