@aptpod/iscp-ts
Version:
iSCP 2.0 client library for TypeScript
134 lines • 4.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProtoToWire = exports.WireToProto = void 0;
const exceptions_1 = require("../../exceptions/exceptions");
const message_1 = require("../../message");
const common_1 = require("../codegen/common");
class WireToProto {
static qos(wire) {
switch (wire) {
case message_1.QOS.UNRELIABLE:
return common_1.QoS.UNRELIABLE;
case message_1.QOS.RELIABLE:
return common_1.QoS.RELIABLE;
case message_1.QOS.PARTIAL:
return common_1.QoS.PARTIAL;
default:
throw new exceptions_1.ISCPMalformedMessageError('Unrecognized qos.');
}
}
static dataPoint(wire) {
return {
elapsedTime: wire.elapsedTime,
payload: wire.payload.slice(),
};
}
static dataId(wire) {
return {
name: wire.name,
type: wire.type,
};
}
static dataIdOrAlias(wire) {
if (wire instanceof message_1.DataId) {
return {
oneofKind: 'dataId',
dataId: WireToProto.dataId(wire),
};
}
else if (typeof wire === 'number') {
return {
oneofKind: 'dataIdAlias',
dataIdAlias: wire,
};
}
throw new exceptions_1.ISCPMalformedMessageError('Unrecognized dataIdOrAlias.');
}
static dataPointGroup(wire) {
return {
dataIdOrAlias: WireToProto.dataIdOrAlias(wire.dataIdOrAlias),
dataPoints: wire.dataPoints.map((dataPoint) => WireToProto.dataPoint(dataPoint)),
};
}
static dataFilter(wire) {
return {
name: wire.name,
type: wire.type,
};
}
static downstreamFilter(wire) {
return {
sourceNodeId: wire.sourceNodeId,
dataFilters: wire.dataFilters.map((dataFilter) => WireToProto.dataFilter(dataFilter)),
};
}
static streamChunk(wire) {
return {
sequenceNumber: wire.sequenceNumber,
dataPointGroups: wire.dataPointGroups.map((dataPointGroup) => WireToProto.dataPointGroup(dataPointGroup)),
};
}
}
exports.WireToProto = WireToProto;
class ProtoToWire {
static qos(proto) {
switch (proto) {
case common_1.QoS.UNRELIABLE:
return message_1.QOS.UNRELIABLE;
case common_1.QoS.RELIABLE:
return message_1.QOS.RELIABLE;
case common_1.QoS.PARTIAL:
return message_1.QOS.PARTIAL;
default:
throw new exceptions_1.ISCPMalformedMessageError('Unrecognized qos.');
}
}
static dataPoint(proto) {
return new message_1.DataPoint({
elapsedTime: proto.elapsedTime,
payload: proto.payload.slice(),
});
}
static dataId(proto) {
return new message_1.DataId({
name: proto.name,
type: proto.type,
});
}
static dataIdOrAlias(proto) {
switch (proto.oneofKind) {
case 'dataId':
return ProtoToWire.dataId(proto.dataId);
case 'dataIdAlias':
return proto.dataIdAlias;
default:
throw new exceptions_1.ISCPMalformedMessageError('Unrecognized dataIdOrAlias.');
}
}
static dataPointGroup(proto) {
return new message_1.DataPointGroup({
dataIdOrAlias: ProtoToWire.dataIdOrAlias(proto.dataIdOrAlias),
dataPoints: proto.dataPoints.map((dataPoint) => ProtoToWire.dataPoint(dataPoint)),
});
}
static dataFilter(proto) {
return new message_1.DataFilter({
name: proto.name,
type: proto.type,
});
}
static downstreamFilter(proto) {
return new message_1.DownstreamFilter({
sourceNodeId: proto.sourceNodeId,
dataFilters: proto.dataFilters.map((dataFilter) => ProtoToWire.dataFilter(dataFilter)),
});
}
static streamChunk(proto) {
return new message_1.StreamChunk({
sequenceNumber: proto.sequenceNumber,
dataPointGroups: proto.dataPointGroups.map((dataPointGroup) => ProtoToWire.dataPointGroup(dataPointGroup)),
});
}
}
exports.ProtoToWire = ProtoToWire;
//# sourceMappingURL=common.js.map