xiot-core-message-ts
Version:
32 lines (31 loc) • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const InvokeAction_1 = require("../../typedef/iq/basic/InvokeAction");
const xiot_core_spec_ts_1 = require("xiot-core-spec-ts");
const ArgumentOperationCodec_1 = require("xiot-core-spec-ts/dist/xiot/core/spec/codec/operation/ArgumentOperationCodec");
class InvokeActionCodec {
encodeQueryContent(query) {
if (query instanceof InvokeAction_1.QueryInvokeAction) {
return xiot_core_spec_ts_1.ActionOperationCodec.encodeOneQuery(query.operation);
}
return null;
}
encodeResultContent(result) {
if (result instanceof InvokeAction_1.ResultInvokeAction) {
return {
aid: result.aid ? result.aid.toString() : '',
out: ArgumentOperationCodec_1.ArgumentOperationCodec.encodeArray(result.out)
};
}
return null;
}
decodeQuery(id, content) {
return new InvokeAction_1.QueryInvokeAction(id, xiot_core_spec_ts_1.ActionOperationCodec.decodeOneQuery(content));
}
decodeResult(id, content) {
const aid = content.aid;
const out = ArgumentOperationCodec_1.ArgumentOperationCodec.decodeArray(content.out);
return new InvokeAction_1.ResultInvokeAction(id, aid, out);
}
}
exports.InvokeActionCodec = InvokeActionCodec;