@swtc/serializer
Version:
swtc serializer
35 lines • 1.2 kB
JavaScript
;
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