xiot-core-spec-ts
Version:
XIOT Specification Codec
27 lines (26 loc) • 965 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var set = Reflect.set;
const XepMessage_1 = require("../../typedef/xep/impl/XepMessage");
const XepRecordCodec_1 = require("./XepRecordCodec");
const XepMessageType_1 = require("../../typedef/xep/XepMessageType");
class XepMessageCodec {
static encodeObject(message) {
const o = {};
set(o, 'type', message.type.toString());
if (message.record) {
set(o, 'content', XepRecordCodec_1.XepRecordCodec.encodeObject(message.record));
}
return o;
}
static decodeObject(o) {
const type = XepMessageType_1.XepMessageTypeFromString(o.type);
const record = o.content;
let xepRecord = null;
if (record) {
xepRecord = XepRecordCodec_1.XepRecordCodec.decodeObject(record);
}
return new XepMessage_1.XepMessage(type, xepRecord);
}
}
exports.XepMessageCodec = XepMessageCodec;